У меня следующая структура:
{
todos: {
byId: {
123456: {
id: 123456,
text: "Hello World",
dateTime: "2019-01-21T06:15:53.300Z"
},
...
},
allIds: [123456, ...]
}
}
Затем я использую редуктор среза, как описано здесь .
const byId = createReducer({})({
[ADD]: (state, { payload }) => ({
...state, [payload.id]: payload
})
})
const allIds = createReducer([])({
[ADD]: (state, { payload }) => [
...state, payload.id
]
})
export default combineReducers({ byId, allIds })
Как бы вы обработали заказ по дате здесь?Поскольку редуктор allIds получает только состояние (массив) и новый добавленный объект с его датой.
На веб-сайте, указанном выше, просто сказано "Массивы идентификаторов должны использоваться для указания порядка".
Я могу, например, сделать новую запись в состоянии с именем orderedTodoIds
, но тогда приведенное выше предложение неверно.