反应范围:一旦初始化,如何在TabNavigator上禁用滑动



我设置了一个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

相关内容

  • 没有找到相关文章

最新更新