我设置了一个tabnavigator,如:
class RNNavigation extends Component {
constructor(props) {
super(props);
}
render() {
const MainScreenNavigator = TabNavigator({
ProfileStack: { screen: ProfileStack },
Home: { screen: Home },
HistoryStack: { screen: HistoryStack }
}, {
initialRouteName: 'Home',
tabBarComponent: () => { return null; },
swipeEnabled: true
});
return (
<MainScreenNavigator/>
);
}
}
在某个时候,我需要从屏幕组件中禁用滑动。该怎么做?是否可以不重新渲染导航器。
------- 15/03/2017编辑
尝试通过ScreenProps传递回调函数(仅与Beta 7一起使用)。但是,正如预期的那样,由于它是重新渲染的,因此它可以返回到InitialRoutEname" Home"。
。redux的同样问题...
任何建议都受到欢迎!
您可以将其变成变量并创建一个函数以打开/关闭。
this.state ={ swipe: true } //set state in constructor
....
toggleSwipe = () => { //function that will be passed down to toggle on/off
this.setState((prevState) => ({ swipe: !prevState.swipe });
}
....
swipeEnabled: this.state.swipe //this will now get toggled between true/false