如何从内部组件React Native调用App.js?

问题描述 投票:0回答:1

我正在使用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')

react-native react-navigation
1个回答
1
投票

您的导航层次结构以SigninSignup导航器开头。

由于您的组件根据this.state.condition渲染导航器或标签栏,因此您不能将navigate渲染到其他屏幕。

您可以解决这个问题,或者将标签栏和SigninSignup导航器移动到新的根导航器中,并使用它在所有内容之间导航,或者通过向Tabbar提供可以更改condition值的函数:

<Tabbar onSomething={() => this.setState({condition: !this.state.condition})} />
© www.soinside.com 2019 - 2024. All rights reserved.