node.js - 不变违规 : TurboModuleRegistry. getEnforcing(...): 'NativeReanimated' 找不到

标签 node.js react-native react-native-reanimated

所以这是我第一次使用 Reanimated 2,不幸的是我的应用程序因上述消息而崩溃。无法查看我的应用程序屏幕。

Invariant Violation: TurboModuleRegistry.getEnforcing(...): 'NativeReanimated' could not be found. Verify that a module by this name is registered in the native binary.


我在这里使用 reanimated
import React from 'react'
import Item from '../../Common/Item'
import {View,Text,FlatList,StyleSheet , TouchableOpacity} from 'react-native'

import Animated, {useAnimatedStyle} from 'react-native-reanimated';
import {bin,mix,useTiming} from 'react-native-redash' 


const {interpolate,not}=Animated
const SectorItem=({sector,clients,index,opened,toggleSector})=> {
        const {name}=sector
        const ITEM_HEIGHT = 100
        const transition = useTiming(opened)
        const style = useAnimatedStyle(()=>({
          height: mix(transition,0,clients.length * ITEM_HEIGHT)
        }))
      
        //here we wll also have the clients of each sector 
        return <Item xStyle={styles.item}>
                <View>
                    <Text>{name}</Text>
                    <TouchableOpacity onPress={e=>toggleSector(index)}>
                      <Text>open</Text>
                    </TouchableOpacity>
                </View>
                <Animated.View style={style}>
                    <FlatList 
                       data   = {clients}
                       style  = {{...styles.Clientlist,display:opened?'flex':'none'}}
                       contentContainerStyle = {props =>(styles.flatList)}
                       showsVerticalScrollIndicator={false}
                       renderItem   = {({ item }) =><Item xStyle={{marginBottom:8}}> 
                         <TouchableOpacity>
                           {/* redirect to client  */}
                              <Text>{item.name} </Text>
                         </TouchableOpacity>
                       </Item> }
                       keyExtractor = {(item, index) => index.toString()}
                    />
                </Animated.View>
        </Item>
   
}

export default SectorItem
var styles = StyleSheet.create({
    list:{
        borderColor:'#fff',
        padding:16,
    },
    Clientlist:{
        borderColor:'#fff',
        padding:16,
    },
    flatList:{ 
        alignItems: 'center',
         justifyContent: 'center', 
         height:200,
         flex:1
    },
    item:{
        marginBottom:8
    }
  });
  
我的 package.json :
{
  "name": "DistributionApp",
  "version": "0.0.1",
  "private": true,
  "scripts": {
    "android": "react-native run-android",
    "ios": "react-native run-ios",
    "start": "react-native start",
    "test": "jest",
    "lint": "eslint ."
  },
  "dependencies": {
    "@react-native-community/masked-view": "^0.1.10",
    "@react-navigation/drawer": "^5.11.5",
    "@react-navigation/native": "^5.9.0",
    "@react-navigation/stack": "^5.13.0",
    "@rematch/core": "^2.0.0-next.10",
    "cross-fetch": "^3.0.6",
    "nanoid": "^3.1.20",
    "react": "16.13.1",
    "react-native": "0.63.4",
    "react-native-elements": "^3.1.0",
    "react-native-fast-image": "^8.3.4",
    "react-native-gesture-handler": "^1.9.0",
    "react-native-reanimated": "^2.0.0-rc.2",
    "react-native-redash": "^16.0.8",
    "react-native-safe-area-context": "^3.1.9",
    "react-native-screens": "^2.16.1",
    "react-redux": "^7.2.2",
    "redux": "^4.0.5",
    "typescript": "^4.1.3"
  },
  "devDependencies": {
    "@babel/core": "^7.8.4",
    "@babel/runtime": "^7.8.4",
    "@react-native-community/eslint-config": "^1.1.0",
    "babel-jest": "^25.1.0",
    "eslint": "^6.5.1",
    "jest": "^25.1.0",
    "metro-react-native-babel-preset": "^0.59.0",
    "react-test-renderer": "16.13.1"
  },
  "jest": {
    "preset": "react-native"
  }
}

最佳答案

reanimated 包在 android 中不会自动链接,请按照官方文档中提到的步骤进行操作。
你需要在
android/app/build.gradle

project.ext.react = [
 enableHermes: true,  // clean and rebuild if changing
]
在 babel.config.js 中添加以下内容
plugins: ['react-native-reanimated/plugin']
在 MainApplication.java 中添加以下内容
    @Override
    protected JSIModulePackage getJSIModulePackage() {
      return new ReanimatedJSIModulePackage(); // <- add
    }

关于node.js - 不变违规 : TurboModuleRegistry. getEnforcing(...): 'NativeReanimated' 找不到,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65761015/

相关文章:

react-native - React Native 插值超出最大调用堆栈大小

node.js - Sequelize 不同步 - 插入

node.js - Node JS 中是否有像 Angular 中那样的路由守卫?

react-native - 使用 React 原生 ViroReact 像面部过滤器一样进行 Snap Chat

javascript - 无法在 React Native 中呈现 onPress TouchableOpacity View

react-native - React Native 使用 Animated 隐藏 Header(在 TransformY 后留下空白)

node.js - 在 Node.js 中使用 import 时 Yargs 不起作用

node.js - 在 React Native 中使用 npm install 安装 Node 模块时出现错误

android - 当我在 React Native 中按下注册按钮时,屏幕导航到登录屏幕

react-native - 在react-native-reanimated中继续循环动画