ユーザートークンを削除すると、ユーザーはログインページにリダイレクトされます。しかし、他のユーザーとログインしても、メインページには以前のユーザー情報が表示されます。リアクションナビゲーションでリフレッシュする方法
これは、メインページを更新しなかったためです。反応ナビゲーションでメインページを手動で(?)再初期化するにはどうすればよいですか?
MainPage(Logged in as 'matt') -> Logout -> LoginPage
-> (here I want to refresh MainPage so it can be loaded once new user login)
-> MainPage(Should be logged in as other user 'kobe')
メインページはcomponentWillMountを介してユーザJSONデータを受け取る。これは、ルートナビゲーション
const RootTabNavigator = TabNavigator ({
Auth: {
screen: AuthStackNavigator,
},
Welcome: {
screen: WelcomeScreen,
},
Main: {
screen: MainTabNavigator,
},
}, {
ある
1)
componentWillMount() {
// retrieve user data
this.props.retrieveCurrentUser(this.props.token);
}
あなたは私のコードを必要とする念の
...
2)これは認証スタックナビゲーター(ログインページ)
export default StackNavigator ({
Autho: {
screen: AuthScreen,
},
SignUp: {
screen: SignUpScreen,
},
SignUpBio: {
screen: SignUpUserBioScreen,
},
SignUpUsername: {
screen: SignUpUsernameScreen,
},
}, {
header: null,
headerMode: 'none',
navigationOptions: {
header: null
},
lazy: true
});
3)これはメインTabNavigatorコンテナである
export default TabNavigator(
{
Feed: {
screen: FeedScreen,
},
Stylebook: {
screen: StylebookScreen,
},
Wardrobe: {
screen: WardrobeScreen,
},
Noti: {
screen: NotificationScreen,
},
Menu: {
screen: MenuScreen,
},
}, {
...
}
ニース!しかし、私の質問ははっきりしないと思う。ユーザーの情報(小道具)をAxiosのPOST呼び出しから更新します。 MainPageがレンダリングするときに、componentWillMountが再度実行されません(もちろんログアウトの前にマウントされていました)。私たちが(あなたの解決策から)反応ナビゲーションパラメータを受け取ったら、一度それをマウントすることができますか? –
navigateで渡すパラメータは、componentWillReceivePropsとrenderで利用できます。そこで使用できます(つまり、渡された新しいトークンを使用してretrieveUserの1つを呼び出します) – daramasala