反应道具在第一笔交易中空白
react props comes blank on first transaction
我正在使用 redux promise 中间件。我正在尝试将 Propsx 中的值传递给状态。 useEffect 中的 Props 变空了。我怎样才能将道具的内容转移到状态。接下来是道具价值。
操作:
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 :/
}, []);
useEffect(() => {
props.fetchBasket();
console.log(props.basket); // null :/
}, []);
你的道具只会在下一个事件循环周期更新,要在 useEffect
中使用 React hooks 数据更新你需要 useReducer
https://reactjs.org/docs/hooks-reference.html#usereducer
[在此处输入 link 描述][1]如果您想在第一个 运行(装载)中使用值。在此处获取 ==> useLayoutEffect,这将给出 useEffect()[] 中的值。 [使用布局效果]:https://reactjs.org/docs/hooks-reference.html#uselayouteffect
我正在使用 redux promise 中间件。我正在尝试将 Propsx 中的值传递给状态。 useEffect 中的 Props 变空了。我怎样才能将道具的内容转移到状态。接下来是道具价值。
操作:
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 :/
}, []);
useEffect(() => {
props.fetchBasket();
console.log(props.basket); // null :/
}, []);
你的道具只会在下一个事件循环周期更新,要在 useEffect
中使用 React hooks 数据更新你需要 useReducer
https://reactjs.org/docs/hooks-reference.html#usereducer
[在此处输入 link 描述][1]如果您想在第一个 运行(装载)中使用值。在此处获取 ==> useLayoutEffect,这将给出 useEffect()[] 中的值。 [使用布局效果]:https://reactjs.org/docs/hooks-reference.html#uselayouteffect