我有一个可选择对象的列表,例如。 让任务= [任务A,任务B,任务C,任务D]。我正在使用FlatList渲染任务。单击任务后,用户将转到所选任务的“编辑任务”。我可以使用redux将选定的元素更新为数组索引,或者可以存储选定的任务键。
case SELECT_TASK:
return {
...state,
selected_habit: action.array_index
};
case SELECT_TASK:
return {
...state,
selected_habit: action.key
};
在任务特定页面上,用户可以编辑任务。然后在redux中,我可以执行以下任一操作:
case EDIT_TASK: {
let tasks = { ...state.tasks};
tasks[state.selected_task] = edited_task; //not showing edit code
return {
...state
tasks: tasks
}
}
//don't use array index, instead use task key
case EDIT_TASK:
return {
...state
tasks: state.tasks.map(task => {
if (task.key === action.key) {
//update task code
return task;
} else return task;
})
}
在每个任务中,我可能会有一系列需要任务列表或类似任务的子任务。使用Redux访问这些嵌套数组似乎很麻烦。似乎最好持有一个对象并访问特定的键。但是,FlatList需要一个数组。
1)我是否应该考虑将任务作为对象存储在redux中,并在渲染之前从该对象构建一个数组,以便可以使用FlatList?这样可以更轻松地更新任务的特定属性(而不存储每次更新的选定状态或映射)?
2)如果使用当前模式,则存储数组元素而不是对象键是否具有显着的性能优势?