我一直试图让一个简单的React Native StackNavigation示例应用程序工作,但是我一直在
TypeError: undefined is not an object (evaluating 'this.props.navigation.navigate')
我不希望应用程序在此阶段的任何位置导航,只需使用应用栏和一些任意文本进行部署。
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安装的,并且正在导入到应用程序中。
发布了类似的问题,我已经尝试了他们的建议。感谢您提供的任何帮助!
答案 0 :(得分:1)
如果这只是道具可能未定义,你可以检查未定义。
t_vars = tf.trainable_variables()
d_vars = [var for var in t_vars if 'this_' in var.name]
clip_D = [p.assign(tf.clip_by_value(p, -1, 1)) for p in d_vars]
假设在某些时候const { navigate } = this.props.navigation || {};
是在渲染中定义的,上面应该是安全的。您可以尝试记录它,看它是否总是未定义或在某个时刻定义。
navigation
输出可能是......
console.log(navigate)
答案 1 :(得分:0)
您可以在StackNavigator的选项中添加initialRouteName。试试这个。
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);