В чем причина того, что мой редуктор не обновляет контекст должным образом?
Я использую редуктор для обновления контекста.
case 'SET_POSTS':
return { ...state, posts: action.posts };
case 'REMOVE_POST':
return {
...state,
posts: state.posts.filter(post => post.id != action.id)
};
Эта отправка не приведет к обновлению
dispatch({ type: 'SET_POSTS', posts: [res, ...context.posts] });
Но этот будет, за исключением того, что новый пост находится не на том конце массива.
dispatch({ type: 'SET_POSTS', posts: [...context.posts, res] });
Я предполагаю, что это может быть проблема с оператором распространения, перезаписывающим первое сообщение, но я не могу заставить редуктор правильно отфильтровать правильное сообщение, когда я удаляю сообщение.
dispatch({ type: 'REMOVE_POST', id: state.id });
Вот мое исходное состояние.
const initialState = {
user: null,
errors: [],
loading: false,
posts: []
};