У меня есть данные redux, и они обновляются, даже если отправка запускается, ниже мое состояние redux
const initialState = {
actions: [
{
id: 'c943df13-549b-4bf9-838c-4c5da1e9649a',
userId: 'badd523d-62ea-4763-a955-92a612861495',
jobId: '5aa44d3d-b925-462b-befb-b7c673c2dfae',
description: 'Test Description 1',
timeTaken: 2,
nonBillable: false,
status: 0,
dateCreated: new Date(),
},
{
id: '4dcd6ca4-42dc-4868-bc4b-a08c849f5846',
userId: 'badd523d-62ea-4763-a955-92a612861495',
jobId: '5aa44d3d-b925-462b-befb-b7c673c2dfae',
description: 'Test Description 2',
timeTaken: 5,
nonBillable: false,
status: 0,
dateCreated: new Date(),
},
],
};
const reducers = (state: any = initialState, action: any) => {
switch (action.type) {
default:
return state;
}
};
export default reducers;
двигаясь вперед, я получаю эти данные через useEffect и useSelector и имею фильтр jobId
const reducers = useSelector((state: RootState) => state.reducers);
const [items, setItems] = useState<Array<ActionProps>>([]);
...
useEffect(() => {
const actItems = reducers.actions.filter(
(item: ActionProps) => item.jobId === jobId
);
setItems(actItems);
}, [jobId, reducers.actions]);
теперь, поскольку данные redux теперь находятся внутри состояния, я просто обновляю объект nonBilable внутри него, потому что мне нужно обновить интерфейс, поскольку он доступен через форму, и вот моя функция
const onChangeToggle = ({ id, value }: { id: string | number; value: boolean }) => {
const currentData = [...items];
const findIndex = currentData.findIndex((item: ActionProps) => item.id === id);
currentData[findIndex].nonBillable = value;
setItems(currentData);
};
Как вы можете видеть выше, я не отправляю обновление, так как у меня есть другая функция для его отправки. Теперь, когда я пытаюсь перейти на другую страницу и вернуться на страницу, состояние сохраняется, даже если у меня есть useEffect внутри компонента, а не диспетчеризация.
Я обнаружил, что это состояние Redux обновляется без отправки каких-либо действий вопрос но я думаю, что у нас другая ситуация
Любая помощь приветствуется.