有没有办法在React Native中强制更新导入的组件?

时间:2019-06-04 14:48:42

标签: reactjs react-native redux react-redux react-navigation

在App.js中,我想在打开它后更新抽屉中的补充工具栏:

    import SideBar from './Screens/SideBar';

    const AppDrawerNavigator = DrawerNavigator({
  TabNav: {screen: TabNav},
  LoginScreen: {screen: LoginScreen},
  RegisterScreen: {screen: RegisterScreen},
},
{
    initialRouteName: "TabNav",
    contentOptions: {
      activeTintColor: "#e91e63"
    },
    contentComponent: props => <SideBar {...props} />
  },

);

const defaultGetStateForAction = AppDrawerNavigator.router.getStateForAction;

AppDrawerNavigator.router.getStateForAction = (action, state) => {

    if(state && action.type === 'Navigation/NAVIGATE' && action.routeName === 'DrawerOpen') {
        SideBar.forceUpdate(); <--- Does not work
    }


    return defaultGetStateForAction(action, state);
};

对于某些情况,一旦我登录,状态更改后,SideBar.js的内容就不会更新。但是,一旦我关闭应用程序并重新打开它,就可以看到带有用户名等的更新的SideBar。我正在使用AsyncStorage。所以我想知道是否可以强迫它更新?

我听说react-redux可以解决此问题,但是我不知道如何将其合并到我的代码中。

0 个答案:

没有答案