@webe
frontend

Что делать с данными?

Вопрос про качество кода.

Есть некий красный компонент, в нем есть кнопка с добавлением данных в БД.
Я разделил этот красный компонент на много маленьких.
1) зеленый отвечает за выбор даты
2) синий за выбранные элементы в чекбоксе
3) желтый - это текст и тема

Задача: По нажатию на красную кнопку add нужно отправить на сервер дату, выбранные элементы чекбокса, текст и тему.


выхода тут 2 как я понял:
1) Храним все не в state компонентов а в redux , там делаем ветку store = {app:{date,checkboxes,topic,message}}
2) в красном компоненте мы создаем 4 стрелочные функции и прокидываем их пропсами в каждый дочерний компонент. Ну а там уже вызываем this.props.handleChangeDate()

Какой вариант предпочтительней?

С одной стороны мы мусорим в редаксе, а с другой занимаемся пробросами, т.е. создаем путаницу.(новому программисту придется искать родителя, он не знает где мы меняем state на самом деле)
как обычно называют callback который приходит с верхнего уровня?



5b48d30ae41d2762197004.jpeg
  • Вопрос задан
  • 77 просмотров
Решения вопроса 1
rockon404
@rockon404 Куратор тега React
Frontend Developer
Лучше хранить все в красном компоненте. Интерфейс дочерних лучше описать так, чтобы хватило одного хандлера hanldeChange для всех компонентов. Компоненты зеленый, синий, желтый лишние. Это вроде форма, пусть в ней и находятся элементы формы, а не непонятные абстракции.
<Form>
  <DatePicker />
  <DatePicker />
  <Divider />
  <CheckBox />
  <CheckBox />
  <CheckBox />
  <Divider />
  <Input />
  <TextArea />
  <Button />
</Form>

лучше и понятней чем:
<Form>
  <DateFromToSelector />
  <FormCheckboxes />
  <Texts />
  <Button />
</Form>


И новому программисту не придется ничего искать.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы