在react redux和saga中完成调度后,获取状态变量



你好,我是React、Redux和Saga的新手。因此,我有一个场景,我有个.jsx文件,它是视图文件,然后是用于调度的操作文件,我还使用saga来更新reducers中的数据。以下是文件结构:

  1. 操作文件:
export const getAction = (requestor) => ({
type: GET_ACTION,
data: {
requestor,
},
});
  1. 还原器文件
export const Reducer = (currentState = {}, action) => {
const newState = { ...currentState };
switch (action.type) {
case GET_ACTION:
newState.data = action.data;
return newState;
}  
};
  1. Saga文件
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,
];
  1. jsx文件
const [dummy, setDummy] = useState([]);
const data = useSelector(state => state.data, shallowEqual) || {};
There is a function in which dispatch function is called.
dispatch(getAction(requestor));

现在,我需要在dispatch完成数据更新后访问数据的更新状态,因为在数据更新后,我必须设置dummy来设置提到的dummy变量。我可以用任何方式来实现这一点。我试过使用dispatch.then,但在UI上它说.then不是用于调度的函数。

数据更新后,我必须设置Dummy

useEffect允许您对给定的道具更改执行某些操作

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

相关内容

  • 没有找到相关文章

最新更新