когда пользователь входит в систему, я получаю информацию о пользователе, сохраняю ее токен в localalstorage и сохраняю информацию об учетной записи в глобальном хранилище с помощью customSaga.
при перезагрузке страницы пользователя, react-admin
отправит действие AUTH_CHECH
, поэтому я вхожу в систему с помощью токена localstorage, а затем сохраняю данные его учетной записи в хранилище. Лучшее решение нравится:
// in authProvider
case AUTH_CHECK:
if (token) {
return httpClient.loginWithToken()
.then(account => store.dispatch({USER_LOGIN_SUCCESS, payload: account}))
} else {
return history.push('/login')
}
, но, как Франсуа Занинотто сказал , я должен посмотреть некоторые действия и написатьнекоторые саги, чтобы посмотреть это:
yield takeEvery(USER_CHECK, function * (payload) {
// console.log(payload)
// this will be something like: {route: "dashboard", routeParams: undefined}, and I cannot customized this payload
// in fact, even I can customized AUTH_CHECK payload, this will not solve my problem, because auth check is a promise, when action AUTH_CHECK dispathed, the result still not fetched.
yield put({type: USER_LOGIN_SUCCESS, userAccount})
})
И react-admin
Не экспортировать свой магазин: https://github.com/marmelab/react-admin/blob/master/packages/ra-core/src/CoreAdmin.tsx#L153
Так как решить эту проблему?
Спасибо !!