В чем причина того, что мой редуктор не обновляет контекст должным образом?

Я использую редуктор для обновления контекста.

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: []
};

0 ответов

Другие вопросы по тегам