react-native undefined is not an object ('this.props.navigation.navigate') 错误
react-native undefined is not an object ('this.props.navigation.navigate') error
我想进行如下操作
StackNavigator -> TabNavigator -> StackNavigator
单击屏幕上的按钮会转到选项卡式屏幕,按下选项卡式屏幕上的按钮会转到其他无表格屏幕。
出现组件移动错误。
Navigator.js
const SignUpScene = createStackNavigator({
SignUp: {screen: SignUp},
}, ...
const SigninScene = createStackNavigator({
HomeUI: {screen: HomeUI},
TopTab: {screen: TopTab},
Screen1: {screen: Screen1},
SignUpScene: {screen: SignUpScene},
}, ...
const HomeScene = createStackNavigator({
SigninScene: {screen: SigninScene},
}, ...
export default class Navigator extends Component {
render() {
return(
<HomeScene />
);
}
}
HomeUI.js
render() {
const {navigate} = this.props.navigation;
return (
<View>
<Image... />
<View>
<TouchableOpacity
...
opPress={() => navigate("TopTab")}>
<Text> button1 </Text>
</TouchableOpacity>
<TouchableOpacity
...
onPress={() => navigate("Screen1")}>
<Text> button2 </Text>
</TouchableOpacity>
</View>
</View>
)}
TopTab.js
export default TopTab = createMaterialTopTabNavigator({
Tab1: {
screen: Tab1,
navigationOptions: {...}
},
Tab2: {
screen: Tab2,
navigationOptions: {...}
}
})
Tab1.js
render() {
const {navigate} = this.props.navigation;
return(
...
<view>
<Button
onPress={() => navigate("SignUpScene")} />
...
</View>
...
)}
出现以下错误:
undefined is not an object ('this.props.navigation.navigate')
如何解决?
我可以在 stacknavigator 中看到堆叠的堆栈吗?
我要调试
我解决了。
我已经为 Tab1 上的屏幕分隔 class。
export default class example extends Component {
render() {
return(
<Tab1 />
)
}
}
我把上面的代码改成了下面这样:
<Tab1 navigation={this.props.navigation}/>
我想进行如下操作
StackNavigator -> TabNavigator -> StackNavigator
单击屏幕上的按钮会转到选项卡式屏幕,按下选项卡式屏幕上的按钮会转到其他无表格屏幕。
出现组件移动错误。
Navigator.js
const SignUpScene = createStackNavigator({
SignUp: {screen: SignUp},
}, ...
const SigninScene = createStackNavigator({
HomeUI: {screen: HomeUI},
TopTab: {screen: TopTab},
Screen1: {screen: Screen1},
SignUpScene: {screen: SignUpScene},
}, ...
const HomeScene = createStackNavigator({
SigninScene: {screen: SigninScene},
}, ...
export default class Navigator extends Component {
render() {
return(
<HomeScene />
);
}
}
HomeUI.js
render() {
const {navigate} = this.props.navigation;
return (
<View>
<Image... />
<View>
<TouchableOpacity
...
opPress={() => navigate("TopTab")}>
<Text> button1 </Text>
</TouchableOpacity>
<TouchableOpacity
...
onPress={() => navigate("Screen1")}>
<Text> button2 </Text>
</TouchableOpacity>
</View>
</View>
)}
TopTab.js
export default TopTab = createMaterialTopTabNavigator({
Tab1: {
screen: Tab1,
navigationOptions: {...}
},
Tab2: {
screen: Tab2,
navigationOptions: {...}
}
})
Tab1.js
render() {
const {navigate} = this.props.navigation;
return(
...
<view>
<Button
onPress={() => navigate("SignUpScene")} />
...
</View>
...
)}
出现以下错误:
undefined is not an object ('this.props.navigation.navigate')
如何解决?
我可以在 stacknavigator 中看到堆叠的堆栈吗?
我要调试
我解决了。 我已经为 Tab1 上的屏幕分隔 class。
export default class example extends Component {
render() {
return(
<Tab1 />
)
}
}
我把上面的代码改成了下面这样:
<Tab1 navigation={this.props.navigation}/>