#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,
};
},
И т. Д
Не раздражайте грубых людей 🙂