我正在使用StackNavigator加载在App.js中使用react-native-tab-navigator创建的Tabbar。我在Tabbar中有一个视图。如何从该视图导航回App.js?
App.js
import { StackNavigator } from 'react-navigation';
const SigninSignup = StackNavigator({
Signup: { screen: Signup },
Signin: { screen: Signin },
});
render() {
if (this.state.condition) {
return (<Tabbar />);
} else {
return (<SigninSignup />);
}
}
Myview.js(在Tabbar里面)
我怎样才能回到App.js并加载SigninSignup
?
我试过了
const { navigate } = this.props.navigation;
navigate('Signin', {});
但得到ERROR undefined is not an object (evaluating 'this.props.navigation')
您的导航层次结构以SigninSignup
导航器开头。
由于您的组件根据this.state.condition
渲染导航器或标签栏,因此您不能将navigate
渲染到其他屏幕。
您可以解决这个问题,或者将标签栏和SigninSignup
导航器移动到新的根导航器中,并使用它在所有内容之间导航,或者通过向Tabbar
提供可以更改condition
值的函数:
<Tabbar onSomething={() => this.setState({condition: !this.state.condition})} />