React-navigation 安装错误(遵循官方文档)。无法解析模块 @react-navigation/native-stack
React-navigation installation error(following official docs). Unable to resolve module @react-navigation/native-stack
有很多问题已经涵盖了这个确切的错误,但我已经解决了所有这些问题,到目前为止 none 的答案对我有用。平台是 MacOS
这是错误:
重现步骤(遵循官方 React Navigation 文档 https://reactnavigation.org/docs/getting-started/):
- 创建一个新的 expo 托管应用程序
- expo init my-app
- 导航到目录
- 启动应用程序
- 世博会开始
**** 此时一切开始并正常工作 ****
- 安装reactnavigation(按照官方文档https://reactnavigation.org/docs/getting-started/)
- 纱线添加@react-navigation/native
- 安装依赖项
- expo install react-native-screens react-native-safe-area-context
- 用导航容器包装代码(根据文档)
- 启动应用程序
- 世博会开始
**** 应用程序不再有效。因我之前发布的错误而失败 ****
我尝试过但没有奏效的方法。
- 错误消息提供的说明(尽管我跳过了第 1 步,因为我没有安装 watchman 手表)。我希望在这里工作的主要事情是删除“node_modules”和“yarn.lock”,但运气不好:(。与删除缓存相同
- 使用“yarn add”而不是“expo install”来添加依赖项
- 使用 npm 安装一切
- 正在更新 expo-sdk(我已经是最新的了)
- 正在重新安装所有内容
所以,在写的过程中,我其实已经能够回答我自己的问题了。我经常这样做,因为我确保在编写问题的过程中花几个小时尝试调试,并确保我已经涵盖了我能想到的所有尝试。
不确定官方的自我回答礼仪,但这对我来说是一个非常令人沮丧的错误,所以我想我会 post 在这里对我有用的东西,以防它在未来可以帮助其他人。
回答:
我的问题与代码或应用程序本身无关,而是 IOS 模拟器。强制退出模拟器并重新启动解决了错误。似乎简单的 ctrl^c -> expo start -> i -> r 不足以清除模拟器的内部状态。
错误消息本身实际上什至有线索,但我错过了,因为错误看起来与我预期的非常相似。线索在于它无法解析的模块名称“@react-navigation/native-stack”。在我的复制步骤中,我只使用了 NavigationContainer,因为我试图在安装任何导航器并尝试使用它们之前让它工作。
为什么要尝试解析 native-stack 导航器?我不是 100% 确定,但我的猜测是模拟器中有某种缓存没有被正确清除。为什么我这么认为?
这个问题始于我尝试在我正在开发的另一个应用程序中使用 native-stack 导航器。我很快 运行 发现了这个错误,并认为最好的调试方法是启动一个 b运行d 新的空白应用程序并尝试让 ReactNavigation 在其中工作。我从导航包和 NavigationContainer 本身开始,一旦我什至无法正常工作,我就认为问题出在基础 react-navigation 包安装上。我没有注意到它仍在尝试解析 native-stack 导航器。
有很多问题已经涵盖了这个确切的错误,但我已经解决了所有这些问题,到目前为止 none 的答案对我有用。平台是 MacOS
这是错误:
重现步骤(遵循官方 React Navigation 文档 https://reactnavigation.org/docs/getting-started/):
- 创建一个新的 expo 托管应用程序
- expo init my-app
- 导航到目录
- 启动应用程序
- 世博会开始 **** 此时一切开始并正常工作 ****
- 安装reactnavigation(按照官方文档https://reactnavigation.org/docs/getting-started/)
- 纱线添加@react-navigation/native
- 安装依赖项
- expo install react-native-screens react-native-safe-area-context
- 用导航容器包装代码(根据文档)
- 启动应用程序
- 世博会开始 **** 应用程序不再有效。因我之前发布的错误而失败 ****
我尝试过但没有奏效的方法。
- 错误消息提供的说明(尽管我跳过了第 1 步,因为我没有安装 watchman 手表)。我希望在这里工作的主要事情是删除“node_modules”和“yarn.lock”,但运气不好:(。与删除缓存相同
- 使用“yarn add”而不是“expo install”来添加依赖项
- 使用 npm 安装一切
- 正在更新 expo-sdk(我已经是最新的了)
- 正在重新安装所有内容
所以,在写的过程中,我其实已经能够回答我自己的问题了。我经常这样做,因为我确保在编写问题的过程中花几个小时尝试调试,并确保我已经涵盖了我能想到的所有尝试。
不确定官方的自我回答礼仪,但这对我来说是一个非常令人沮丧的错误,所以我想我会 post 在这里对我有用的东西,以防它在未来可以帮助其他人。
回答: 我的问题与代码或应用程序本身无关,而是 IOS 模拟器。强制退出模拟器并重新启动解决了错误。似乎简单的 ctrl^c -> expo start -> i -> r 不足以清除模拟器的内部状态。
错误消息本身实际上什至有线索,但我错过了,因为错误看起来与我预期的非常相似。线索在于它无法解析的模块名称“@react-navigation/native-stack”。在我的复制步骤中,我只使用了 NavigationContainer,因为我试图在安装任何导航器并尝试使用它们之前让它工作。
为什么要尝试解析 native-stack 导航器?我不是 100% 确定,但我的猜测是模拟器中有某种缓存没有被正确清除。为什么我这么认为?
这个问题始于我尝试在我正在开发的另一个应用程序中使用 native-stack 导航器。我很快 运行 发现了这个错误,并认为最好的调试方法是启动一个 b运行d 新的空白应用程序并尝试让 ReactNavigation 在其中工作。我从导航包和 NavigationContainer 本身开始,一旦我什至无法正常工作,我就认为问题出在基础 react-navigation 包安装上。我没有注意到它仍在尝试解析 native-stack 导航器。