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')
}