Здравствуйте, я новичок в React, Redux и Saga. Итак, у меня есть сценарий, в котором у меня есть файл .jsx, который представляет собой файл представления, затем файл действия, используемый для отправки, и я также использую saga, которая обновляет данные в редукторах. Ниже приведены структуры файлов:
- Файл действия:
export const getAction = (requestor) => ({
type: GET_ACTION,
data: {
requestor,
},
});
- Файл-редуктор
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,
];
- 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));
Теперь мне нужно получить доступ к обновленному состоянию данных после того, как диспетчер завершил обновление данных, потому что после обновления данных мне нужно установить Dummy, чтобы установить указанную фиктивную переменную. Любым способом, к которому я могу приблизиться, чтобы добиться этого. Я попытался использовать dispatch.then, но в пользовательском интерфейсе говорится, что .then не является функцией для отправки.
GET_ACTION
, но не обрабатываете его в редукторе, поэтому это действие не вызывает изменения состояния - person bsapaka   schedule 01.12.2020