React native 反应本机嵌套堆栈导航器

React native 反应本机嵌套堆栈导航器,react-native,stack-navigator,React Native,Stack Navigator,嵌套堆栈导航器 const SubNav = StackNavigator({ Send : { screen : Send }, Receive : { screen : Receive } }, { navigationOptions : { header : false } } ); .... render() { return .... <Button /> //click to go to send <Button /> //cl

嵌套堆栈导航器

const SubNav = StackNavigator({
  Send : { screen : Send },
  Receive : { screen : Receive }
  }, {
    navigationOptions : { header : false }
  }
);
....
render() { return ....
<Button />   //click to go to send
<Button />   //click to go to receive
<SubNav />
在我的App.js中

const MainNav = StackNavigator({
  Login : { screen : Login },
  MainPage : { screen : MainPage }
  }, {
    navigationOptions : { header : false }
  }
);
....
render() { return ....
<MainNav />
现在,不允许在发送和接收之间导航。我已经检查了按钮,它使用alert('msg')工作正常。我正在渲染发送屏幕,但不是接收屏幕

我尝试了这个.props.navigation.navigate('Login');我被重定向到登录屏幕


任何人请帮助:D

您导航到“发送”和“接收”的按钮正在使用顶级StackNavigator的
导航
道具。您需要使用
SubNav
导航
道具,您可以使用ref:

class Blah extends Component {

    subNav = null

    render() {
        return ....
            <Button onPress={this.gotoReceive} />
            <Button onPress={this.gotoSend} />
            <SubNav ref={this.refSubNav} />
    }

    refSubNav = el => this.subNav = el

    gotoSend = () => this.subNav.navigation.navigate('send')

}
类Blah扩展组件{
subNav=null
render(){
返回。。。。
}
refSubNav=el=>this.subNav=el
gotoSend=()=>this.subNav.navigation.navigate('send'))
}
class Blah extends Component {

    subNav = null

    render() {
        return ....
            <Button onPress={this.gotoReceive} />
            <Button onPress={this.gotoSend} />
            <SubNav ref={this.refSubNav} />
    }

    refSubNav = el => this.subNav = el

    gotoSend = () => this.subNav.navigation.navigate('send')

}