Инвариантное нарушение: Обязательный компонент: «BVLinearGradient»

#javascript #android #ios #react-native #npm

Вопрос:

Я работал с react-native-gradient пакетом и получаю следующую ошибку, касающуюся пакета.

Ошибка

 Invariant Violation: requireNativeComponent: "BVLinearGradient" was not found in the UIManager.

This error is located at:
    in BVLinearGradient (at react-native-linear-gradient/index.ios.js:54)
    in LinearGradient (at SignupLogin.js:46)
    in RCTView (at View.js:34)
    in View (at createAnimatedComponent.js:165)
    in AnimatedComponent (at createAnimatedComponent.js:215)
    in ForwardRef(AnimatedComponentWrapper) (at TouchableOpacity.js:224)
   .........    
    in View (at AppContainer.js:106)
    in DevAppContainer (at AppContainer.js:121)
    in RCTView (at View.js:34)
    in View (at AppContainer.js:132)
    in AppContainer (at renderApplication.js:39)
at node_modules/react-native/Libraries/Core/ExceptionsManager.js:104:6 in reportException
at node_modules/react-native/Libraries/Core/ExceptionsManager.js:171:19 in handleException
at node_modules/react-native/Libraries/Core/setUpErrorHandling.js:24:6 in handleError
at node_modules/expo-error-recovery/build/ErrorRecovery.fx.js:12:21 in ErrorUtils.setGlobalHandler$argument_0
at [native code]:null in flushedQueue
at [native code]:null in invokeCallbackAndReturnFlushedQueue
 

Использование

 ...
import * as Animatable from "react-native-animatable";
import LinearGradient from "react-native-linear-gradient";
import MaterialIcons from "react-native-vector-icons/MaterialIcons";
import { useTheme } from "@react-navigation/native";


const SignupLogin = ({ navigation }) => {
  const { colors } = useTheme();
  return (
    <View style={styles.container}>
      .....
        <View style={styles.button}>
          <TouchableOpacity onPress={() => navigation.navigate("sign-in")}>
            <LinearGradient
              colors={["#0831d4", "#0131ab"]}
              style={styles.signIn}
            >
              <Text style={styles.textSign}>Get started</Text>
              <MaterialIcons name="navigate-next" color="#fff" size={20} />
            </LinearGradient>
         .....
    </View>
  );
};


export default SignupLogin;

 

Это простая навигация между меню входа в нижний колонтитул и меню регистрации App.js , а остальные файлы находятся в стандартном методе кодирования.

Ответ №1:

подтвердите, что вы установили react-native-линейный-градиент

 yarn add react-native-linear-gradient
 

в ios у подтверждения ios/podfile есть эта строка

 pod 'BVLinearGradient', :path => '../node_modules/react-native-linear-gradient'
 

затем запустите pod install в папке ios

Комментарии:

1. Да, я это сделал. Однако я использую систему Linux. npm install react-native-linear-gradient --save а затем свяжите его с помощью react-native link react-native-linear-gradient . Проблема в файлах ios, но я не использовал их в работе с тех пор, как запустил приложение в Android.

2. Я думаю, что вы, возможно, не понимаете этой проблемы. Я использую машину Linux и создал собственный проект React, используя эти библиотеки. Проблема возникает, когда я пытался запустить приложение в симуляторе Android, а затем появляется эта ошибка. Зависимости, как я вижу, не повреждены, и я не могу понять, что и где пошло не так.

3. Возможно, я неправильно понял, но я сталкивался с подобной проблемой раньше в ios и решил ее с помощью приведенного выше ответа.

4. с какой платформой у вас проблема? android or ios ?. и не важно, в Linux это или в Windows.

5. Извините, я тоже кое-что перепутал. Да, Podfile у него есть ссылка и путь, который вы упомянули, но все равно появляется ошибка