我在确定使用新密钥将新项目添加到React / Redux状态的最佳做法时遇到了一些麻烦。
鉴于州:
const initialState = {
"routines": {
"1": {
"id": 1,
"name": "Routine 1",
},
"2": {
"id": 2,
"name": "Routine 2",
}
}
}
我想说我想在这个状态下添加一个新项目。我应该在哪里提出用于提出新ID的逻辑?
这是我最好的尝试,但我想知道是否有更好的方法来做到这一点。
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