【问题标题】:`createStackNavigator()` has been moved to `react-navigation-stack``createStackNavigator()` 已移至 `react-navigation-stack`
【发布时间】:2020-01-09 01:40:30
【问题描述】:

我在项目中使用react-navigation,弹出这个错误。

我用谷歌搜索了这个错误信息,没有找到任何结果。

(我还不能发布图片)

错误信息如下:

`createStackNavigator()` has been moved to `react-navigation-stack`. See https://reactnavigation.org/docs/4.x/stack-navigator.html for more details.

代码在我朋友的机器上运行,不知何故

【问题讨论】:

    标签: react-native


    【解决方案1】:

    正如错误所说,在react-navigation 版本 4 中,所有导航器都已移至单独的存储库,因此您必须单独安装它们。

    对于StackNavigator,您必须使用以下命令安装react-navigation-stack

    npm i react-navigation-stack   //or yarn add react-navigation-stack
    

    之后,转到定义createStackNavigator 的文件并更改:

    import { createStackNavigator } from 'react-navigation'
    

    到:

    import { createStackNavigator } from 'react-navigation-stack'
    

    这个错误可能是因为你的朋友使用了 react-navigation v. 3,但在你的 package.json 中它使用的是 react-navigation 版本 >3。当您执行 npm install 时,它下载了最新版本的 react-navigation(上周更新到版本 4 并进行了这些更改)

    其他导航器也是如此。

    来源:https://reactnavigation.org/docs/en/stack-navigator.html

    【讨论】:

    • 或者使用 Yarn:yarn add react-navigation-stack
    • 感谢您的解决方案。但你应该首先提到安装 react-navigation-stack。
    【解决方案2】:

    在版本 4 中安装 react-navigation-stack NPM 包,它将解决问题。

    对于 StackNavigator,您必须使用以下方式安装 react-navigation-stack:

    npm install react-navigation-stack --save
    

    查看https://reactnavigation.org/docs/en/hello-react-navigation.html了解更多详情

    import React from 'react';
    import { View, Text } from 'react-native';
    import { createAppContainer } from 'react-navigation';
    import { createStackNavigator } from 'react-navigation-stack';
    
    class HomeScreen extends React.Component {
      render() {
        return (
          <View style={{ flex: 1, alignItems: 'center', justifyContent: 'center' }}>
            <Text>Home Screen</Text>
          </View>
        );
      }
    }
    
    const AppNavigator = createStackNavigator({
      Home: {
        screen: HomeScreen,
      },
    });
    
    export default createAppContainer(AppNavigator);
    

    【讨论】:

      【解决方案3】:

      改变(泥)

      import { createStackNavigator } from 'react-navigation';
      

      到(段)

      import { createStackNavigator } from 'react-navigation-stack';
      

      【讨论】:

        【解决方案4】:

        首先:安装

        npm install react-navigation-stack
        

        其次:导入 react-navigation-stack

        import { createStackNavigator } from 'react-navigation-stack';
        

        【讨论】:

          【解决方案5】:

          现在依赖是更改新的 react-native 版本 0.61

          // old one
          import {createStackNavigator} from 'react-navigation'; it's changed
          
          // latest one 
          first of all insatll the dependency 
          
          npm install react-navigation-stack
          
          import {createStackNavigator} from 'react-navigation-stack';  //this
          
          export default createStackNavigator(
            {
             .....
            }
          

          【讨论】:

            【解决方案6】:
            1. npm install react-navigation-stack
            2. npm install react-navigation
            3. expo install react-native-gesture-handler react-native-reanimated
            4. Use app container

            例子

            import { createAppContainer } from 'react-navigation';
            import { createStackNavigator } from 'react-navigation-stack';
            
            const RootStack = createStackNavigator({ /* your routes here */ });
            const AppContainer = createAppContainer(RootStack);
            
            // Now AppContainer is the main component for React to render
            export default AppContainer;
            

            【讨论】:

              【解决方案7】:

              使用下面的单行命令安装依赖项

              npx expo-cli install react-native-gesture-handler react-native-reanimated react-navigation-stack
              

              并更改导入语句如下

              import { createStackNavigator } from 'react-navigation-stack';
              

              【讨论】:

                【解决方案8】:

                第 1 步:通过 npm i react-navigation-stack 安装 react-navigation-stack

                第 2 步:将 createStackNavigator 移动到新创建的包中

                import { createStackNavigator } from "react-navigation-stack";
                import { createAppContainer } from "react-navigation";
                -----
                

                另外:

                createBottomTabNavigator也从移动到react-navigation-tabs react-navigation

                import { createBottomTabNavigator} from "react-navigation-tabs";
                

                【讨论】:

                  【解决方案9】:

                  我通过安装这些修复了同样的错误。

                  1. npm install react-navigation
                  2. npm i react-navigation-stack
                  3. npm install react-native-reanimated react-native-gesture-handler react-native-screens react-native-safe-area-context @react-native-community/masked-view

                  我把这个闲置了

                  https://medium.com/better-programming/react-native-navigating-between-the-screens-and-code-structure-for-beginners-6b815ee8f79

                  【讨论】:

                    【解决方案10】:

                    你必须遵循两个步骤:

                    1. yarn add react-navigation-stack npm install react-navigation-stack

                    2. import { createStackNavigator } from "react-navigation-stack";

                    【讨论】:

                    【解决方案11】:

                    在命令提示符下运行npm install @react-navigation/stackyarn add @react-navigation/stack 并像import { createStackNavigator } from '@react-navigation/stack' 一样导入它。我希望这会正常工作。欲了解更多信息,read here

                    【讨论】:

                      猜你喜欢
                      • 1970-01-01
                      • 2022-10-23
                      • 1970-01-01
                      • 2021-11-02
                      • 2020-05-27
                      • 2019-09-16
                      • 1970-01-01
                      • 1970-01-01
                      • 1970-01-01
                      相关资源
                      最近更新 更多