@jslby

Как убрать дублирующийся контейнер в react+redux?

Пишу небольшой учебный проект: github
Добился следующего:
Есть списког активных тасков. При клике на активный таск - он перемещается в список снизу - выполненных тасков.
Т.е. если мы создаем задачу и выполняем ее, она перемещается в из списка активных в завершенные.
При клике на задачу в списке завершенных, она возвращается в активные.

В данный момент все работает, только вот этот код меня настораживает: github

Тут я создаю два обсолютно одинаковых контейнера, и единственное различие в них - фильтрация по активнм и завершенным таскам. Как можно сделать более элегантно и не так топорно?
Да, можно попробовать передавать параметр через props в этот контейнер, но это не будет топорным решением?
  • Вопрос задан
  • 107 просмотров
Решения вопроса 1
locky_yotun
@locky_yotun
Я видел некоторый джаваскрипт
Может задавать проп `completed` в месте использования контейнера?
export const Tasks = connect(
  (state, { completed }) => () => {
    const filter = completed ? t => t.complited ? t => !t.complited;
    return state.tasks.filter(filter);
  },
  dispatch => ({
    onToggleComplited(id) {
      dispatch(toggleComplited(id));
    },
  }),
)(TaskList)

// Ну и там где используете:
<Tasks completed={true} />
<Tasks completed={false} />
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Обычно такую фильтрацию делают на уровне контейнера. То есть список тасков в сторе остаётся неизменным.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы