对象不是 Expo(react-native) 应用程序中的函数
Posted
技术标签:
【中文标题】对象不是 Expo(react-native) 应用程序中的函数【英文标题】:Object is not a function in Expo(react-native) app 【发布时间】:2021-05-18 07:46:51 【问题描述】:我的应用程序没有启动。请帮我。这是代码库的问题吗?
编辑 1: 渲染时的另一个错误
错误:验证 app.json 中的字段时出现问题。见https://docs.expo.io/workflow/configuration/ • 不应有附加属性“nodeModulesPath”。
app.json 文件:
"main": "node_modules/expo/AppEntry.js",
"scripts":
"start": "expo start",
"android": "expo start --android",
"ios": "expo start --ios",
"web": "expo start --web",
"eject": "expo eject"
,
"dependencies":
"@expo/vector-icons": "^12.0.4",
"@react-native-community/masked-view": "^0.1.10",
"@react-navigation/bottom-tabs": "^5.11.10",
"@react-navigation/native": "^5.9.4",
"expo": "~41.0.1",
"expo-status-bar": "~1.0.4",
"firebase": "^8.2.3",
"react": "16.13.1",
"react-dom": "16.13.1",
"react-native": "https://github.com/expo/react-native/archive/sdk-41.0.0.tar.gz",
"react-native-gesture-handler": "^1.10.3",
"react-native-reanimated": "^1.13.2",
"react-native-safe-area-context": "^3.2.0",
"react-native-screens": "^3.0.0",
"react-native-stack": "^1.0.0-alpha11",
"react-native-web": "~0.13.12",
"react-navigation": "^4.4.4",
"react-navigation-stack": "^2.10.4"
,
"devDependencies":
"@babel/core": "^7.9.0"
,
"private": true
编辑 2:
我卸载了react-native-stack,但是出现错误:Error: Module not found: Can't resolve 'react-native-stack'
我又安装了:
npm install react-native-stack
然后我在渲染中遇到了同样的问题(看第一张图片)并且在控制台中出现了这个错误:
1(黄色)
`Some of your project's dependencies are not compatible with currently installed expo package version:
- react-native-reanimated - expected version range: ~2.1.0 - actual version installed: ^1.13.2
Your project may not work correctly until you install the correct versions of the packages.
To install the correct versions of these packages, please run: expo install [package-name ...]`
2(红色)
`Error: Problem validating fields in app.json. See https://docs.expo.io/workflow/configuration/
• should NOT have additional property 'nodeModulesPath'.`
渲染答案:
`√ Expo Webpack
Compiled successfully in 5.25s
i 「wds」: Project is running at http://0.0.0.0:19006/
i 「wds」: webpack output is served from /
i 「wds」: Content not from webpack is served from C:\Users\Лёха\AppData\Roaming\npm\node_modules\expo-cli\node_modules\@expo\webpack-config\web-default
i 「wds」: 404s will fallback to /
编辑 3
我错了,所以我又把 react-native-stack 删了
npm uninstall react-native-stack
然后我删除了 App.js 文件中的导入:
import createStackNavigator from 'react-native-stack'
我仍然在 yarn.lock 文件中,但我认为 rm -rf node_modules
应该可以工作。我只是不明白,如何使用它。
`
【问题讨论】:
删除useScreens();
行。
【参考方案1】:
编辑
您的 node_modules 中可能没有 react-native-screens?对于您正在使用的每个模块的反应导航,您还有其他需要导入的模块。这不是自动完成的。
旧答案
您在组件外部使用useScreens()
。顺便说一句,useScreens()
已弃用,应替换为 enableScreens
【讨论】:
这甚至不是我的代码,它已经在一个模块中,我从未编辑过它。 "react-native-screens": "^3.0.0", 已安装。 那么你的版本可能不适合 react-native-stack 的版本。如果 useScreens() 已被弃用,它可能在 3.0.0 中已被删除,您需要使用 react-native-screens-version 或使用 react-native-stack 升级 但是 react-native-stack 版本是 "react-native-stack": "^1.0.0-alpha11"以上是关于对象不是 Expo(react-native) 应用程序中的函数的主要内容,如果未能解决你的问题,请参考以下文章
React-native refs 和 Expo Camera
如何在 expo/react-native 应用程序中添加自定义节点模块?
null 不是对象(评估“RCTToastAndroid.SHORT”)