从另一个文件导入类后,React Navigation Switch Navigator 不起作用

Posted

技术标签:

【中文标题】从另一个文件导入类后,React Navigation Switch Navigator 不起作用【英文标题】:React Navigation Switch Navigator not working after importing class from another file 【发布时间】:2019-06-27 06:16:18 【问题描述】:

您好,请在此处查看我的代码:

https://snack.expo.io/@ersimransingh/navigation-problem

我创建了我的切换导航器以在从 App.js 到 Second.js 的页面之间导航

在 App.js 页面上,我导入了名为 App1 的 Second.js 文件模块,该模块可以工作。

此外,我对 Second.js 文件从 App.js 导入的 App 组件做了同样的事情,但是页面上的 swith navigator show error 说

路由“App”的组件必须是 React 组件。

我确实在互联网上搜索过相同的内容,并尝试将我的重要语法替换为 从'./App'导入App; 到 从'./App'导入应用程序;

您可以在 expo 上查看我的代码 https://snack.expo.io/@ersimransingh/navigation-problem

【问题讨论】:

【参考方案1】:

您有 App.js,它正在使用 Second.js 创建路由,而 Second.js 正在使用 App.js 创建路由。这绝对是有问题的,因为您正在创建一个循环引用。相反,您应该在一个地方创建导航并在 App.js 中使用它

这是一个例子: 应用.js

  export default class App extends React.Component
      render()
        return(
          <CreateTag />
        );
      
    

const AppContainer = createSwitchNavigator(
  FirstScreen,
  SecondScreen 
);

const CreateTag = createAppContainer(AppContainer);

FirstScreen.js

    export default class FirstScreen extends React.Component 
      render() 
        let  navigation  = this.props;

        return (
          <View>
            <Text
              style=styles.sampleText
              onPress=() => navigation.navigate('SecondScreen')>
              First screen
            </Text>
          </View>
        );
      
    

SecondScreen.js

export default class SecondScreen extends React.Component 
  render() 
    let  navigation  = this.props;

    return (
      <View>
        <Text
          style=styles.sampleText
          onPress=() => navigation.navigate('FirstScreen')>
          Second screen
        </Text> 
      </View>
    );
  

这里是完整的例子:https://snack.expo.io/S1cY9IVEV 您也可以查看官方示例:https://github.com/react-navigation/react-navigation/blob/master/examples/NavigationPlayground/js/App.js

我希望这会有所帮助。

【讨论】:

以上是关于从另一个文件导入类后,React Navigation Switch Navigator 不起作用的主要内容,如果未能解决你的问题,请参考以下文章

即使在 React 中正确导入后也不包含默认导出

将Python导入函数从另一个目录导入文件,然后从另一个目录导入另一个函数

从另一个包和文件 golang 导入结构

Jest - 模拟函数,从另一个文件导入

从另一个文件导入变量?

为啥10.8gismap目录新建要素集之后导入一个要素类后