Как лучше всего работать с формами, в которых я хотел бы, чтобы несколько (одинаковых) форм были «сохранены» (возможно, где-то в формате JSON), прежде чем фактически сохранять их в базе данных или что-то делать с ними.

Идея состоит в том, что у пользователя будет несколько изображений, а затем каждое изображение будет иметь свой собственный экран с полями ввода текста, чтобы применить информацию, которую они могут сохранить для описания изображения. Затем пользователь щелкнет «Далее», и на экране появятся пустые формы и следующее изображение. Это будет продолжаться до конца массива изображений, после чего пользователь «завершит» всю информацию.

Я предполагаю, что я буду использовать 1 компонент, потому что формат будет таким же, но как мне его получить, это будет тот же компонент с пустыми формами и где вся информация где-то хранится?

Edit: это также понадобится для работы с видеокомпонентами.

1
hellomello 6 Янв 2020 в 09:33
Я думаю, вы можете добиться того, чего хотите, с помощью некоторой абстракции и многоступенчатого примера formik. Formik работает с собственным github.com/jaredpalmer/formik/blob/master / examples /…
 – 
anthony willis muñoz
11 Янв 2020 в 03:45
1
Вы можете попробовать простую горизонтальную прокрутку с включенной разбивкой на страницы.
 – 
Ashwin Mothilal
14 Янв 2020 в 22:33
Я бы создал глобальный Helper varialbe в виде массива для хранения данных, нажимая каждую форму в виде строки, а затем полностью горизонтально разбитый на страницы, а затем заполните его сохраненными данными в глобальном помощнике
 – 
Abd
16 Янв 2020 в 13:22

3 ответа

Я думаю, вам нужно задействовать несколько состояний в своих компонентах. так что вы можете изменить свое состояние в своем компоненте и показать, что вы хотите.

https://github.com/archriss/react-native-snap-carousel/issues/102

Вы можете сослаться на эту ссылку, и вы поймете, как это сделать.

0
Handsome 6 Янв 2020 в 09:38
Не думаю, что я бы сделал это так, я бы использовал компонент повторно, и показывал бы только 1 экран (1 изображение и детали). Затем, когда он пойдет дальше, пользователь увидит следующее изображение. Думаю, это было бы похоже на процесс оформления заказа. Экран адреса доставки => Экран варианта оплаты => Экран просмотра. Но что касается меня, я не слишком уверен, как мне следует структурировать данные и все, что с ними связано.
 – 
hellomello
7 Янв 2020 в 20:05

Я думаю, что вы спрашиваете о viewPager: пример библиотеки: react-native-viewpager

Родительский компонент, на котором будет размещаться пейджер просмотра, может иметь централизованную информацию, которую каждый подкомпонент генерирует внутри пейджера просмотра. Когда какие-либо данные меняются внутри подкомпонента, вы можете отправить их через опору обратного вызова родителю.

(Поскольку макет каждого субкомпонента одинаков, вы, конечно, можете повторно использовать его внутри пейджера просмотра).

0
angelos_lex 11 Янв 2020 в 00:46

Если я хорошо понимаю, похоже, что вы имеете дело с функцией, которая включает в себя определенный поток экранов, и вам нужно собирать пользовательский ввод через них.

С помощью React Navigation вы сможете создать простую структуру навигации, которая позволит вам перемещаться по разным экземплярам одного и того же экрана. компонент, который будет содержать вашу форму ui и собственное состояние.

Затем все входные данные, введенные пользователем на экране формы, можно передать на следующий экран с помощью параметры маршрута. Наконец, когда вы дойдете до экрана lats, просто извлеките все собранные данные из params и отправьте их в базу данных.

Это не обеспечивает какой-либо локальной сохраняемости, если пользователь закрывает приложение в середине последовательности экранов.

Если вам нужна рекомендуемая библиотека для сбора изображений и видео от пользователя, вот react-native -изображение-подборщик урожая

Ура!

0
Bruno Sendras 17 Янв 2020 в 06:56