Компонент Field
- это то, что связывает поле формы с состоянием Формика. Он использует контекст под капотом; Formik
является поставщиком контекста, а Field
является потребителем контекста. Field
связан с Formik
и не имеет смысла вне его. Для вашего случая использования, когда вы хотите визуализировать поля формы, которые иногда связаны с Formik, а иногда нет, я бы экспортировал два разных компонента:
В то время как компонент Field
может взять type
, в результате чего он отобразит соответствующий вход, он также может взять реквизит рендера для рендеринга того, что вы хотите, и ему передается все состояние, которым управляет Formik для этого поля.
Например, ваши компоненты Checkbox и CheckboxField могут выглядеть примерно так:
const Checkbox = (props) => {
...
return (
)
};
const CheckboxField = (props) => {
return (
{(field) => }
)
}
Теперь вы используете два компонента, которые отображаются одинаково, но один предназначен для использования в форме Formik ( CheckboxField
), а другой может использоваться где угодно (Checkbox
).
Нет никакого общего ответа на тот вопрос. Это зависит от некоторых факторов:
Но тенденция ясно переходит к веб-приложениям. Можно достигнуть настоящей группы людей с ними.
Некоторые точки для веб-интерфейса:
Я все больше имею мнение, что мы должны использовать веб-, JavaScript (или гибкий провод) интерфейсы как значение по умолчанию. Это означает партии, которые меньше кода в образе прикладного объекта, плюс он позволяет одной кодовой базе, которая делает что-то хорошо по нескольким, которые могут, er, сделать это менее хорошо.
Если Вы создаете к веб-интерфейсу для начала, Вам никогда не нужен отдельный проект создать веб-интерфейс.
С современными браузерами, JavaScript и ajax и библиотеками JavaScript, можно создать чрезвычайно богатый интерфейс, который может легко быть изменен.
Только пойдите для Настольного приложения, если можно управлять средой (интранет) или программа к среде (кросс-платформенная версия), в котором будет работать тот пакет/приложение.
Смотря тенденция теперь дни, все входит в браузеры, и мы получаем одинаково хорошее взаимодействие по сравнению с настольным приложением. Также только вещью, требуемой запускать приложение, является браузер, который всегда хорош и что-то, что мы можем просто попросить, чтобы у пользователя была правильная версия его, и он все установлен использовать его.
Я думаю, что это - неправильный вопрос. То, что необходимо сделать, анализируют различия между платформами и как они влияют организацию. Дать Вам пример реального мира.
Я работал на небольшую компанию, которая только когда-либо создавала веб-приложения. Одно из приложений не было успешно, частично потому что мы имели много пользователей удаленного доступа, и должны были офлайн поддерживать.
Компания шла вперед и разработала клиентское приложение .NET, и они получили грубое пробуждение. Компания не была подготовлена к сложности развертывания ни на каком количестве клиентских конфигураций. Мы получили бит Сетями Novell, например. Они не были подготовлены к стоимости увеличения поддержки клиентского приложения. (И да разработка предостерегла и попыталась предупредить их, что это означало).
Так не только делают необходимо задать различные вопросы, но и необходимо оценить их в контексте организации, производящей программное обеспечение.
Вещи попросить включать:
По моему опыту, я нашел, что веб-приложения обычно занимают немного больше времени для разработки, но существуют некоторые преимущества в разработке веб-приложения.
Необходимо разработать программное обеспечение, установленное на компьютере, если Вам нужно что-то, чтобы быть разработанными быстрые, или Вам нужна производительность / быстро реагирующие интерфейсы (сеть еще медленнее, чем рабочий стол), или если Вы разрабатываете что-то, что не может быть сделано в сети (думайте графическое программное обеспечение / сложные игры).
Если UI Вашего приложения может быть реализован как веб-сервис хорошего поведения / приложение, необходимо серьезно рассмотреть это как опцию.
Самое большое преимущество UI, который может работать в браузере, это независимо от клиента ОС. У большинства пользователей компьютера сегодня есть больше чем один компьютер, обычно подключаемый в сети. Распределение различных операционных систем становится больше каждый день (альтернативы окнам получают большую долю рынка). Таким образом, Вы получаете максимальную мобильность UI. Ваше приложение может быть запущено однажды на одном компьютере и получено доступ отовсюду.