Здесь, в 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 не обновляется после изменения состояния. Но как только я закрываю приложение и снова открываю его, я вижу обновленную боковую панель с именем пользователя и т. Д. Я использую AsyncStorage. Так что мне было интересно, могу ли я заставить его обновить?
Я слышал, что response-redux может решить эту проблему, но я понятия не имею, как включить это в мой код.