反应道具在第一笔交易中空白

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