Использование [act-admin]
У меня есть customDashboard, который проверяет параметр и перенаправляет на страницу с именем pages
:
class DashBoard extends Component {
componentDidMount() {
const { push } = this.props;
if (!localStorage.getItem("activePage")) {
push("/pages");
}
...
У меня также есть этот authProvider, который выбираетаутентификационные данные из бэкэнда:
export default (type, params) => {
if (type === AUTH_LOGIN) {
const { authResponse } = params;
const request = new Request('https://localhost:8080/users/auth', {
method: 'POST',
body: JSON.stringify({ userID }),
headers: new Headers({ 'Content-Type': 'application/json' }),
});
fetch(request)
.then(response => {
if (response.status < 200 || response.status >= 300) {
throw new Error(response.body);
}
return response.json();
}).then(({ user }) => {
localStorage.setItem('token', user.token);
localStorage.setItem('name', user.name);
localStorage.setItem('email', user.email);
localStorage.setItem('activePage', user.activePage);
}).catch((err) => {
return Promise.reject(err);
}).finally(() => {
return Promise.resolve();});
...
Я сократил код, чтобы показать только часть Обещаний.
Однако последняя часть кода, finally
, выполняется ПОСЛЕ“/pages”
монтируется, как я видел в console.log.И в “/pages”
я проверяю activePage, возвращаемую бэкэндом, что происходит слишком поздно.
Чего не хватает в authProvider для «ожидания» выполнения обещаний?