Reactjs 在react redux和saga中完成分派后获取状态变量?

Reactjs 在react redux和saga中完成分派后获取状态变量?,reactjs,react-redux,redux-saga,redux-reducers,Reactjs,React Redux,Redux Saga,Redux Reducers,你好,我对React、Redux和Saga都是新手。所以我有一个场景,我有一个.jsx文件,它是视图文件,然后是一个用于分派的操作文件,我还使用了saga,它更新了reducer中的数据。以下是文件结构: 操作文件: 减速器锉 传奇档案 jsx文件 现在,我需要在dispatch完成数据更新后访问数据的更新状态,因为在数据更新后,我必须设置dummy来设置前面提到的虚拟变量。我可以用任何方法来实现这一点。我尝试过使用dispatch.then,但在UI上,它说。then不是用于dispatch的

你好,我对React、Redux和Saga都是新手。所以我有一个场景,我有一个.jsx文件,它是视图文件,然后是一个用于分派的操作文件,我还使用了saga,它更新了reducer中的数据。以下是文件结构:

  • 操作文件:
  • 减速器锉
  • 传奇档案
  • jsx文件
  • 现在,我需要在dispatch完成数据更新后访问数据的更新状态,因为在数据更新后,我必须设置dummy来设置前面提到的虚拟变量。我可以用任何方法来实现这一点。我尝试过使用dispatch.then,但在UI上,它说。then不是用于dispatch的函数

    数据更新后,我必须设置虚拟

    useffect
    允许您对给定道具进行更改

    const [dummy, setDummy] = useState([]);
    const data = useSelector(state => state.data, shallowEqual) || {};
    
    // setDummy when `data` changes
    useEffect(() => {
      setDummy(data);
    }, [data])
    

    您正在调度
    GET\u操作
    ,但没有在reducer中处理它,因此该操作不会导致状态更改。实际上,该操作拼写错误。该案例是针对GET\u操作的。
    export const Reducer = (currentState = {}, action) => {
      const newState = { ...currentState };
    
      switch (action.type) {
        case GET_ACTION:
          newState.data = action.data;
          return newState;
      }  
    };
    
    function* getData(action) {
      const { requestor } = action.data;
      try {
        const data = yield call(callService);
        if(success) {
          yield put( {type: GET_ACTION, data} );
        }
      } catch (e)
      {
      }
    }
    
    function* getDataSaga() {
      yield takeLatest(GET_ACTION, getData);
    }
    
    export {
      getData,
    };
    
    export default [
      getDataSaga,
    ];
    
    const [dummy, setDummy] = useState([]);
    const data = useSelector(state => state.data, shallowEqual) || {};
    
    There is a function in which dispatch function is called.
    
    dispatch(getAction(requestor));
    
    const [dummy, setDummy] = useState([]);
    const data = useSelector(state => state.data, shallowEqual) || {};
    
    // setDummy when `data` changes
    useEffect(() => {
      setDummy(data);
    }, [data])