Есть
state, например
cats, при добавлении нового cat я дергаю актион
ADD_NEW_CAT.
Но, при обновлении обновлении приложения, либо инициализации делаю реквест на сервер и загружаю все данные, так исторически сложилось, что при реквесте приходит обьект массивов:
response: {
cats: [ , , ,],
dogs: [ , , ,],
hozyainy: [],
}
я делаю
ACTION LOAD_DATA где вобвращаю эти данные.
В Reducer у меня ничего не остается как сохранить в
state весь обьект.
Как можно разделить приходящие данные по разным
state?
То есть, чтоб у меня были при
LOAD_DATA три массива в
state: {cats: [], dogs: [], hozyiny: [] }
загруженные с сервера.
И при добавлении нового
cat ||
dog они попадали в соответствующие
state?
В данные момент ситуация такая:
state: {
loadedData: {cats: [], dogs: [], hozyiny: []},
cats: [],
dogs: [],
hozyiny: [],
}
CODE:ACTIONS:export const loadAllData = (response) => {
return {
type: 'LOAD_ALL_DATA',
data: response,
}};
export const getAllData = () => async (dispatch, getState) => {
const storedData = JSON.parse(localStorage.getItem('data'));
if (storedData) {
dispatch(loadAllData(storedData));
} else {
try {
const response = await Api.getAllData();
localStorage.setItem('data', JSON.stringify(response));
dispatch(loadAllData(response));
} catch (error) {
console.error(error);
}
}
}
REDUCER:export const loadedData = (state = [], action) => {
switch (action.type) {
case 'LOAD_ALL_DATA':
return action.data; // Как разбить данные в разные стейты?
default:
return state;
}
}