react redux сохраняет тот же порядок при обновлении

#reactjs #redux

#reactjs #redux

Вопрос:

У меня есть список пользователей

и в случае последующего действия

У меня есть этот фрагмент:

 usersFollowSuccess: (state, action) => {
      const userId = action.payload._id;
      const filtered = state.data.filter((user) => {
        return user._id !== userId;
      });
      return {
        ...state,
        data: [...filtered, action.payload],
        error: false,
        loaded: true,
      };
    },
  

Все работает нормально, но в представлении обновленного пользователя

перейдите на последнюю позицию.

Как я могу сохранить ту же позицию в представлении? Я пытался добавить сортировку в конце карты, но безуспешно.

Обновить

Я работал с

 const data = state.data.map((user) => {
        if (user._id === userId) {
          user = action.payload;
        }
        return user;
      });
  

Комментарии:

1. Я хотел бы знать причину снижения ^^

2. Извините, могу ли я узнать, что означает та же позиция?

Ответ №1:

Ответить

Прежде всего, если вы хотите использовать sort . Это как раз перед тем, map как

 items.sort(sortFunc).map(item=>(...));
  

Вы упоминаете, что я пытался добавить сортировку в конце карты, но безуспешно.Итак, я думаю, вам следует отсортировать элемент после рендеринга.

И, если вы хотите отсортировать этот элемент по действиям, он работает

 usersFollowSuccess: (state, action) => {
      const userId = action.payload._id;
      const filtered = state.data.filter((user) => {
        return user._id !== userId;
      });
      return {
        ...state,
        data: [...filtered, action.payload].sort(sortFunc),      // Here
        error: false,
        loaded: true,
      };
    },
  

И т. Д

Не раздражайте грубых людей 🙂