react道具在第一笔交易中为空



我使用的是redux promise中间件。我正在尝试将Propsx中的值传递给state。道具在使用中变空效果。如何将道具的内容转移到状态。道具价值紧随其后。

动作:

export function fetchBasket() {
return dispatch => {
dispatch({
type: 'GET_BASKET',
payload: axios.get('url', {
})
.then(response => response.data)
});
};
}

减速器:

const initialState = {
fetching: false,
error: {},
basket: []
};
export default (state = initialState, { type, payload }) => {
switch (type) {
case types.GET_BASKET_PENDING:
return {
fetching: true
};
case types.GET_BASKET_FULFILLED:
return { 
...state,
fetching: false,
basket: payload.result,
};
case types.GET_BASKET_REJECTED:
return { 
fetching: false,
error: payload.result
};
default:
return state;
}
};

用于组件

useEffect(() => {
props.fetchBasket();
console.log(props.basket); // null :/
}, []);

[在此处输入链接描述][1]如果您希望在第一次运行(Mount(中有值。fetch here==>useLayoutEffect,这将给出useEffect[]中的值。[使用布局效果]:https://reactjs.org/docs/hooks-reference.html#uselayouteffect

useEffect(() => {
props.fetchBasket();
console.log(props.basket); // null :/
}, []);

您的道具将只在下一个事件循环中更新,要使用useEffect中的react hooks数据更新,您需要useReducerhttps://reactjs.org/docs/hooks-reference.html#usereducer

相关内容

  • 没有找到相关文章

最新更新