Я создаю приложение «Реакция-редукция». Когда приложение запускается, оно отправляет серверу запрос на вход в систему, на который сервер отвечает некоторой информацией для аутентификации. После получения данных аутентификации приложение должно отправить еще один запрос на получение данных. В настоящее время у меня есть что-то подобное для моих thunk
s, которые выполняют эти действия:
const login = () => (dispatch, getState) => {
axios.get('/login/').then(res => {
// The user doesn't have to provide their username in this case. The backend handles
// authentication for us automatically and sends back the auth data
let {username, staff_id, first_name, last_name, groups} = res.data
dispatch(auth(username, staff_id, first_name, last_name, groups))
}) // save authentication info to redux state
}
const fetchData= () => (dispatch, getState) => {
let myUsername = getState().auth.username
axios.get(`/staff/${myUsername}`).then(res => {
// stuff
})
}
Чтобы код работал, я должен дождаться завершения ответа ax ios в login
перед запуском fetchData
, поскольку fetchData
нужны данные аутентификации для работы. Я также не хочу отправлять fetchData
в login
, но вместо этого вызвать его в моем компоненте, что-то вроде этого:
class App extends Component {
componentDidMount() {
this.props.login()
// how do I dispatch fetchData here?
}
render() {
// stuff
}
}
Есть ли способ сделать топор ios последовательные звонки?
Спасибо