У меня небольшие проблемы с выяснением, как лучше всего добавлять новые элементы в состояние React / Redux с новыми ключами.
Учитывая состояние:
const initialState = {
"routines": {
"1": {
"id": 1,
"name": "Routine 1",
},
"2": {
"id": 2,
"name": "Routine 2",
}
}
}
* 1005Допустим, я хочу добавить новый элемент в это состояние.Где я должен поместить логику для создания нового идентификатора?
- Должно ли это быть свойство формы, отправка которой вызывает действие ADD_ROUTINE?
- Должна ли логика генерации нового идентификатора находиться в редукторе?
Вот моя лучшая попытка, но мне интересно, есть ли лучший способ сделать это.
import { ADD_ROUTINE } from '../actions/routineActions'
function routineReducer(state={}, action) {
switch (action.type) {
case ADD_ROUTINE:
newState = {...state}
number_of_keys = Object.keys(newState).length
new_id = number_of_keys + 1
return {
...state,
new_id: {
id: new_id,
name: action.name,
days: []
}
}
default:
return state
}
}
export default routineReducer