У меня есть форма в приложении простого реагирования.Когда форма отправляется, она запускает Thunk.
handleSubmit(e) {
e.preventDefault();
this.props.dispatch(loginUser({
username: this.state.username,
password: this.state.password,
history: this.props.history
}));
}
Как видите, я передаю историю response-router-dom в Thunk.Вот что значит:
export const loginUser = input => dispatch => {
return fetch('xxxxxxxxxx', {
method: 'POST',
body: JSON.stringify({
username: input.username,
password: input.password
}),
headers: {
'Content-Type': 'application/json'
}
})
.then(res => {
if(!res.ok) {
return Promise.reject(res.statusText)
}
return res.json();
})
.then(token => {
localStorage.setItem('token', token.authToken);
input.history.push('/');
})
.catch(err => console.error(`error: ${err}`));
}
Как видите, если выборка прошла успешно, я затем перехожу к истории.
Это анти-паттерн?Или это нормально.Это работает *, но я хочу знать, если это супер странно / не рекомендуется