在 axios/react 调度时调用 .then
Calling .then on a dispatch in axios/react
我有以下代码:
....
then(() => {
return Promise.all([
dispatch(setAnimalCharacteristics(animalform))
])
.then(() => {
history.push("/animals);
})
有没有办法删除 Promise.all 并只调用 dispatch(setAnimalCharacteristics)?
我试过 运行 这个:
then(() => {
return dispatch(setAnimalCharacteristics(animalform)).then(() => {
我得到错误:
Uncaught (in promise) TypeError: Cannot read property 'then' of undefined
这应该有效:
await dispatch(setAnimalCharacteristics(animalform))
history.push("/animals);
你的代码中我唯一看不到的部分是它调用的函数,你需要在其中添加关键字 async
以便你可以使用 await
但这是一个猜测:
const yourFunction async = () => {
await dispatch(setAnimalCharacteristics(animalform))
history.push("/animals);
}
如果您想在分派操作后进行导航,则实际上不必嵌套 then() 函数。有几种方法可以解决它。
- 然后可以像下面这样链接。
.then(() => dispatch(setAnimalCharacteristics(animalform)))
.then(() => history.push("/animals);)
- 最后写入 setAnimalCharacteristics 函数中的 history.push。在 API 调用完成后,我们最常使用此模式进行导航。
希望对您有所帮助!
我有以下代码:
....
then(() => {
return Promise.all([
dispatch(setAnimalCharacteristics(animalform))
])
.then(() => {
history.push("/animals);
})
有没有办法删除 Promise.all 并只调用 dispatch(setAnimalCharacteristics)?
我试过 运行 这个:
then(() => {
return dispatch(setAnimalCharacteristics(animalform)).then(() => {
我得到错误:
Uncaught (in promise) TypeError: Cannot read property 'then' of undefined
这应该有效:
await dispatch(setAnimalCharacteristics(animalform))
history.push("/animals);
你的代码中我唯一看不到的部分是它调用的函数,你需要在其中添加关键字 async
以便你可以使用 await
但这是一个猜测:
const yourFunction async = () => {
await dispatch(setAnimalCharacteristics(animalform))
history.push("/animals);
}
如果您想在分派操作后进行导航,则实际上不必嵌套 then() 函数。有几种方法可以解决它。
- 然后可以像下面这样链接。
.then(() => dispatch(setAnimalCharacteristics(animalform))) .then(() => history.push("/animals);)
- 最后写入 setAnimalCharacteristics 函数中的 history.push。在 API 调用完成后,我们最常使用此模式进行导航。
希望对您有所帮助!