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

      <legend id='5dYDU'><style id='5dYDU'><dir id='5dYDU'><q id='5dYDU'></q></dir></style></legend>
    1. <small id='5dYDU'></small><noframes id='5dYDU'>

      <tfoot id='5dYDU'></tfoot>
      • <bdo id='5dYDU'></bdo><ul id='5dYDU'></ul>

        React Native - 导航问题“未定义不是对象(this.props.navigation.navigate)&

        时间:2023-12-07
          <tfoot id='hSpQS'></tfoot>

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

          <legend id='hSpQS'><style id='hSpQS'><dir id='hSpQS'><q id='hSpQS'></q></dir></style></legend>

          1. <small id='hSpQS'></small><noframes id='hSpQS'>

              <tbody id='hSpQS'></tbody>

              <bdo id='hSpQS'></bdo><ul id='hSpQS'></ul>
                1. 本文介绍了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)"的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

                  上一篇:Gmail Android 和iOS 应用程序.从 MS Outlook 发送时 CSS 样式(td 和 p 元素)不起 下一篇:'ActionSheetIOS' 不是从'react-native-web/dist/index

                  相关文章

                  1. <legend id='5A4AU'><style id='5A4AU'><dir id='5A4AU'><q id='5A4AU'></q></dir></style></legend>

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

                    <small id='5A4AU'></small><noframes id='5A4AU'>