我设置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&#39; Home&#39;当我从历史中做到这一点,因为它重新渲染。
与redux相同的问题......
任何建议都非常受欢迎!
答案 0 :(得分:0)
您可以将其变为变量并创建一个功能来打开/关闭它。
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