#reactjs #django-rest-framework #multi-step
#reactjs #django-rest-framework #многоступенчатая
Вопрос:
У меня есть трехэтапная форма для добавления истории в базу данных
Когда пользователь заполняет форму первого шага, все данные первого шага будут добавлены в таблицу истории, и пользователь будет перенаправлен на второй шаг. Я написал три представления для первого, второго, третьего шага.
Мой вопрос в том, как мне управлять представлением второго шага и представлением третьего шага? Как я должен обновить историю на втором и третьем шаге? Должен ли я отправлять идентификатор обратно во внешний интерфейс и сохранять его в redux? А затем отправить этот идентификатор в серверную часть для второго и третьего шага?
Также как я должен повторно использовать эту форму в react для обновления?
Я могу предоставить более подробную информацию, если хотите
Ответ №1:
Я считаю, что «подходящего для всех» решения не существует, но в целом ваши мысли верны. Если есть данные, которые знает серверная часть, а ваш интерфейс нет, вы отправляете их обратно в качестве ответа. Итак, это было бы так:
- Отправить форму на серверную часть
- Серверные ответы либо с «OK», либо с данными, о которых должен знать интерфейс, либо с ошибками, если что-то пошло не так
- Переходите к следующему шагу и к 1, пока не закончите
Вы также можете просто сохранить все данные со всех трех шагов во внешнем интерфейсе, а затем отправить их целиком — в этом случае вы не получите частично заполненные данные в БД, но тогда вам придется подумать о навигации по ошибочным полям / шагам, если что-то пойдет не так, и это усложнит вещи.
Что касается повторного использования компонентов, у меня есть мнение: если вы можете поддерживать и заменять компоненты — повторно используйте их.
Редактировать: если вы используете react, вам может не потребоваться перенаправлять пользователя через серверную часть, а только переключать шаг через react (либо с помощью маршрутизатора на стороне клиента, либо с простым значением «step» в состоянии), в зависимости от ваших потребностей.