我需要发出axiospost
请求以更新列表,然后再发出axiosget
请求以获取更新的列表。
我设法用下面的代码进行这些操作,axios(postOptions)
那么axios(getOptions)
:
export function addItem() {
...
return dispatch => {
axios(postOptions)
.then(response => {
dispatch({
type: ITEM_ADDED,
payload: response.data
});
// getItems(); // <= unfortunately, this doesn't work, so I repeat some code
axios(getOptions)
.then(response => {
dispatch({
type: ITEMS_FETCHED,
payload: response.data
});
})
.catch(error => {
return dispatch(handleError(error))
});
})
.catch(error => {
return dispatch(handleError(error))
});
}
该代码有效,但由于已经具有此getItems()
功能,因此我重复我自己:
export function getItems() {
...
return dispatch => {
console.log('I am here') // <= when getItems() is inside addItem() function, 'I am here' is never displayed.
axios(options)
.then(response => {
dispatch({
type: ITEMS_FETCHED,
payload: response.data
});
})
.catch(error => {
return dispatch(handleError(error))
});
}
}
重用此函数可能会更好,但是当在getItems()
函数内部调用该addItem()
函数时,它永远不会进入dispatch()
。
您能帮我找出问题所在吗?
非常感谢。
getItems是一个redux动作,您需要在dispatch中调用它
dispatch(getItems())
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句