Является ли формой презентационный компонент или контейнерный компонент - PullRequest
0 голосов
/ 11 февраля 2019

Это статья, на которую все ссылаются.В основном это говорит о том, что все вызовы API должны выполняться компонентом Container / Smart, а данные должны передаваться компоненту Presentational / Dumb.

Вот мой пример использования:

Предположим, есть диалоговое окно / модал, в котором есть форма (показано ниже).Теперь, когда поле Access Type изменяется, параметры в раскрывающемся списке Permissions также изменяются, и данные извлекаются с сервера. Create User dialog box

Мои вопросы:

1) Является ли это диалоговое окно контейнером или компонентом представления?Или, другими словами, должен ли этот компонент выполнить вызов API для создания нового пользователя или он должен быть включен в компонент Container, который выполняет вызов API?

2) Если вы предполагаете, что это диалоговое окно является Presentationalкомпонент, то каждый раз, когда Access Type изменяется, как будет выполняться вызов API для получения списка Permissions?Является ли запуск событий единственным решением?

3) Если эта форма является презентационным компонентом, то что будет делать onSubmitHandler, когда пользователь нажмет кнопку отправки: просто вызовите событие для компонента Контейнер сФорма полезной нагрузки?

1 Ответ

0 голосов
/ 11 февраля 2019

1) Я могу говорить только из своего собственного опыта и могу сказать, что форма является презентационным компонентом, но должна быть помещена в контейнер, который обрабатывает вызовы API.

2) Опять же, из собственногоопыт, я думаю, onChange должен только обновлять внутреннее состояние компонентов и иметь «submit» -event на onBlur, поэтому, когда пользователь изменяет поля, разрешения будут выбираться.

3) OnSubmitHandler должен по крайней мере сделатьevent.preventDefault(), поэтому страница не перезагружается, а затем использует функцию обратного вызова, полученную из родительского контейнера.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...