<tfoot id='klbsx'></tfoot>

      <small id='klbsx'></small><noframes id='klbsx'>

      <i id='klbsx'><tr id='klbsx'><dt id='klbsx'><q id='klbsx'><span id='klbsx'><b id='klbsx'><form id='klbsx'><ins id='klbsx'></ins><ul id='klbsx'></ul><sub id='klbsx'></sub></form><legend id='klbsx'></legend><bdo id='klbsx'><pre id='klbsx'><center id='klbsx'></center></pre></bdo></b><th id='klbsx'></th></span></q></dt></tr></i><div id='klbsx'><tfoot id='klbsx'></tfoot><dl id='klbsx'><fieldset id='klbsx'></fieldset></dl></div>

      1. <legend id='klbsx'><style id='klbsx'><dir id='klbsx'><q id='klbsx'></q></dir></style></legend>
        • <bdo id='klbsx'></bdo><ul id='klbsx'></ul>
      2. React Native - 导航问题“未定义不是对象(this.props.navigation.navigate)&

        时间:2023-11-29

        <tfoot id='wuDaD'></tfoot>
      3. <legend id='wuDaD'><style id='wuDaD'><dir id='wuDaD'><q id='wuDaD'></q></dir></style></legend>

      4. <small id='wuDaD'></small><noframes id='wuDaD'>

          <tbody id='wuDaD'></tbody>
            <i id='wuDaD'><tr id='wuDaD'><dt id='wuDaD'><q id='wuDaD'><span id='wuDaD'><b id='wuDaD'><form id='wuDaD'><ins id='wuDaD'></ins><ul id='wuDaD'></ul><sub id='wuDaD'></sub></form><legend id='wuDaD'></legend><bdo id='wuDaD'><pre id='wuDaD'><center id='wuDaD'></center></pre></bdo></b><th id='wuDaD'></th></span></q></dt></tr></i><div id='wuDaD'><tfoot id='wuDaD'></tfoot><dl id='wuDaD'><fieldset id='wuDaD'></fieldset></dl></div>
            • <bdo id='wuDaD'></bdo><ul id='wuDaD'></ul>

                  本文介绍了React Native - 导航问题“未定义不是对象(this.props.navigation.navigate)"的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

                  问题描述

                  我正在关注本教程 https://reactnavigation.org/docs/intro/ 并且我正在运行有点问题.

                  Im following this tutorial https://reactnavigation.org/docs/intro/ and im running into a bit of issues.

                  我每次都使用 Expo Client 应用程序来渲染我的应用程序,而不是模拟器/模拟器.

                  Im using the Expo Client app to render my app every time and not a simulator/emulator.

                  我的代码如下所示.

                  我最初在ChatScreen"组件上方定义了SimpleApp"常量,但这给了我以下错误:

                  I originally had the "SimpleApp" const defined above "ChatScreen" component but that gave me the following error:

                  Route 'Chat' 应该声明一个屏幕.例如:...等

                  Route 'Chat' should declare a screen. For example: ...etc

                  所以我将 SimpleApp 的声明移到AppRegistry"上方,并标记了一个新错误

                  so I moved the decleration of SimpleApp to just above "AppRegistry" and that flagged a new error

                  元素类型无效:预期的字符串.....您可能忘记导出您的组件..etc

                  Element type is invalid: expected string.....You likely forgot to export your component..etc

                  本教程没有在任何组件中添加关键字导出默认值",我认为这可能与我在 Expo 应用程序上运行它有关?所以我在HomeScreen"中添加了export default",错误就消失了.

                  the tutorial did not add the key words "export default" to any component which I think it may have to do with the fact that im running it on the Expo app? so I added "export default" to "HomeScreen" and the error went away.

                  我似乎无法摆脱的新错误(基于下面的代码)如下:

                  The new error that I cant seem to get rid off(based on the code below) is the following:

                  undefined 不是一个对象(评估 'this.props.navigation.navigate')

                  undefined is not an object (evaluating 'this.props.navigation.navigate')

                  除非我删除const {navigate}"周围的{}",否则我无法摆脱它,但是当我从主屏幕按下按钮时会破坏导航

                  I can't get rid of it unless I remove the "{}" around "const {navigate}" but that will break the navigation when I press on the button from the home screen

                  import React from 'react';
                  import {AppRegistry,Text,Button} from 'react-native';
                  import { StackNavigator } from 'react-navigation';
                  
                  export default class HomeScreen extends React.Component {
                    static navigationOptions = {
                      title: 'Welcome',
                    };
                    render() {
                      const { navigate } = this.props.navigation;
                      return (
                        <View>
                          <Text>Hello, Chat App!</Text>
                          <Button
                            onPress={() => navigate('Chat')}
                            title="Chat with Lucy"
                          />
                        </View>
                      );
                    }
                  }
                  
                  
                  
                  class ChatScreen extends React.Component {
                    static navigationOptions = {
                      title: 'Chat with Lucy',
                    };
                    render() {
                      return (
                        <View>
                          <Text>Chat with Lucy</Text>
                        </View>
                      );
                    }
                  }
                  
                  const SimpleApp = StackNavigator({
                    Home: { screen: HomeScreen },
                    Chat: { screen: ChatScreen },
                  });
                  AppRegistry.registerComponent('SimpleApp', () => SimpleApp);
                  

                  推荐答案

                  使用 Expo,您不应该自己注册应用程序,而是应该让 Expo 来完成,请记住,您必须始终导出默认组件:您还需要从 react-native 导入 View 和 Button:请在下面找到完整代码:

                  With Expo you should't do the App registration your self instead you should let Expo do it, keeping in mind that you have to export default component always: Also you need to import View and Button from react-native: please find below the full code:

                  import React from 'react';
                  import {
                    AppRegistry,
                    Text,
                    View,
                    Button
                  } from 'react-native';
                  import { StackNavigator } from 'react-navigation';
                  
                   class HomeScreen extends React.Component {
                    static navigationOptions = {
                      title: 'Welcome',
                    };
                    render() {
                      const { navigate } = this.props.navigation;
                      return (
                        <View>
                          <Text>Hello, Chat App!</Text>
                          <Button
                            onPress={() => navigate('Chat', { user: 'Lucy' })}
                            title="Chat with Lucy"
                          />
                        </View>
                      );
                    }
                  }
                  
                   class ChatScreen extends React.Component {
                    // Nav options can be defined as a function of the screen's props:
                    static navigationOptions = ({ navigation }) => ({
                      title: `Chat with ${navigation.state.params.user}`,
                    });
                    render() {
                      // The screen's current route is passed in to `props.navigation.state`:
                      const { params } = this.props.navigation.state;
                      return (
                        <View>
                          <Text>Chat with {params.user}</Text>
                        </View>
                      );
                    }
                  }
                  
                  const  SimpleAppNavigator = StackNavigator({
                    Home: { screen: HomeScreen },
                    Chat: { screen: ChatScreen }
                  });
                  
                  const AppNavigation = () => (
                    <SimpleAppNavigator  />
                  );
                  
                  export default class App extends React.Component {
                    render() {
                      return (
                          <AppNavigation/>
                      );
                    }
                  }
                  

                  这篇关于React Native - 导航问题“未定义不是对象(this.props.navigation.navigate)"的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

                  上一篇:实现拉取刷新 FlatList 下一篇:反应导航5从堆栈导航器中隐藏标签栏

                  相关文章

                    <i id='gfDos'><tr id='gfDos'><dt id='gfDos'><q id='gfDos'><span id='gfDos'><b id='gfDos'><form id='gfDos'><ins id='gfDos'></ins><ul id='gfDos'></ul><sub id='gfDos'></sub></form><legend id='gfDos'></legend><bdo id='gfDos'><pre id='gfDos'><center id='gfDos'></center></pre></bdo></b><th id='gfDos'></th></span></q></dt></tr></i><div id='gfDos'><tfoot id='gfDos'></tfoot><dl id='gfDos'><fieldset id='gfDos'></fieldset></dl></div>
                  1. <legend id='gfDos'><style id='gfDos'><dir id='gfDos'><q id='gfDos'></q></dir></style></legend>
                  2. <tfoot id='gfDos'></tfoot>

                      <small id='gfDos'></small><noframes id='gfDos'>

                        <bdo id='gfDos'></bdo><ul id='gfDos'></ul>