Ниже вы можете увидеть, как у меня это структурировано в моем магазине состояний и резервов. У меня есть переменные состояния, которые подсчитывают, когда я добавляю и удаляю объект, чтобы он знал, по какому индексу следует поместить следующий.
state = {
id: 0,
goalId: 0,
}
Но проблема в том, что когда я перезагружаю страницу, так как я использую локальное хранилище, все состояние реакции возвращается к значению по умолчанию. Я думаю, что должен быть лучший способ справиться с этой ситуацией, чем создавать новый редуктор для этой или другой переменной.
{
list: {
'0': {
id: 0,
dueDate: 'By May 28th I Will have: ',
goals: [
{
0: {...}
1: {...}
3: {...}
}
]
}
'1':{
id: 0,
dueDate: 'By June 31st I Will have: ',
goals: [
{
2: {...}
4: {...}
}
}
1010 * Редуктор *
export default (state = {}, action) => {
switch (action.type) {
case 'COMP_MOUNT':
return
case 'ADD_DUEDATE':
return { ...state, [action.payload.id]: action.payload }
case 'ADD_DEEP_ITEM':
return {
...state,
[action.payload.dueDateId]: {
...state[action.payload.dueDateId],
goals: state[action.payload.dueDateId].goals.concat(action.payload)
}
}
case 'DELETE_DEEP_ITEM':
// console.log(`action.length ${action}`)
return {
...state,
[action.payload.keyName]: {
...state[action.payload.keyName],
goals: [
...state[action.payload.keyName].goals.slice(0, action.payload.index),
...state[action.payload.keyName].goals.slice(action.payload.index + 1)
]
}
}
case 'EDIT_DEEP_ITEM':
console.log(action)
console.log(`state${state}`)
const keyName = action.payload.keyName
const goal = action.payload.goal
const goals = [...state[keyName].goals];
goals.splice(action.payload.index, 1, goal);
return {
...state,
[keyName]: {
...state[keyName],
goals,
}
};
default:
return state;
}
}
Заранее спасибо! :)