首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >未定义不是对象React本机StackNavigator

未定义不是对象React本机StackNavigator
EN

Stack Overflow用户
提问于 2018-06-05 06:46:07
回答 2查看 1.6K关注 0票数 1

我一直在尝试让一个简单的React Native StackNavigation示例应用程序正常工作,但是我一直得到一个

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

我不期望应用程序在这个阶段导航到任何地方,只需使用应用程序栏和一些任意文本进行部署。

代码语言:javascript
复制
import React, { Component } from 'react';
import {AppRegistry, Text} from 'react-native';
import {StackNavigator} from 'react-navigation';

export default class App extends React.Component {
  static navigationOptions = {
    title: 'Home',
  };

  render() {
    const { navigate } = this.props.navigation;
    return (
        <Text> Hello World </Text>
    );
  }
}

const appScreens = StackNavigator({
  Home: {screen: App},
})

AppRegistry.registerComponent('IntervalTimer', () => appScreens);

报告const { navigate } = this.props.navigation;声明时出错。删除这一行确实允许应用程序部署,但不会像我预期的那样没有标题。

StackNavigator是使用NPM安装的,并且正在导入到应用程序中。

有类似的问题张贴,我已经尝试了他们的建议。感谢你能提供的任何帮助!

EN

回答 2

Stack Overflow用户

发布于 2018-06-05 11:30:03

您可以在StackNavigator的选项中添加initialRouteName。尝尝这个。

代码语言:javascript
复制
    import React, { Component } from 'react';
    import {AppRegistry, Text} from 'react-native';
    import {StackNavigator} from 'react-navigation';

    class App extends React.Component {
      static navigationOptions = {
        title: 'Home',
      };

      render() {
        const { navigate } = this.props.navigation;
        return (
            <Text> Hello World </Text>
        );
      }
    }

    export const appScreens = StackNavigator({
      Home: { screen: App }
    },{
      initialRouteName: Home
    })

    AppRegistry.registerComponent('IntervalTimer', () => appScreens);
票数 1
EN

Stack Overflow用户

发布于 2018-06-05 11:37:45

如果这仅仅是因为道具可能有未定义的机会,那么您可以只检查是否未定义。

代码语言:javascript
复制
const { navigate } = this.props.navigation || {};

假设在某个时刻navigation是在render中定义的,那么使用上面的代码应该是安全的。您可以尝试记录它,看看它是否总是未定义的,或者在某个时候定义的。

代码语言:javascript
复制
console.log(navigate)

输出可能是...

代码语言:javascript
复制
undefined
undefined
//defined
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50689765

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档