Запретить навигацию до тех пор, пока не будет выполнено действие onClick (при нажатии определенной кнопки) - PullRequest
0 голосов
/ 07 июня 2019

Я использую Prompt из react-router, и мне нужно несколько советов о том, как спроектировать аспект when={true}.

По логике вещей, я бы хотел, чтобы Prompt запретил навигацию when компонент был виден (поместив его в соответствующий компонент, эта часть в порядке) до кнопка нажатие, которое активирует событие onClick onComplete.

Это сделало бы мой вопрос конкретно, возможно ли возвращать false, пока не выполнится onComplete? Если нет, что еще имеет смысл делать здесь?

В конечном счете, я ищу решение, которое позволит пользователю перемещаться по форме, но спросит его, уверены ли они, что хотят уйти с существующей страницы, пока не нажмет кнопку «отправить» (что должно не запрашивать их, если они хотят уйти - он должен просто обработать их запрос). Я надеюсь, что это имеет смысл.

Ранее я установил Prompt для активации до тех пор, пока все шаги не были проверены, но затем, после того, как пользователь завершил последний шаг, прежде чем нажать «отправить», они могут перемещаться без запроса. Выглядит примерно так:

const shouldPreventNavigation = useMemo(() => areAllStepsValidated(steps), [steps]);

...
...

<Prompt when={!shouldPreventNavigation} message="Are you sure? Your changes will not be saved." />

Любая помощь будет принята с благодарностью!

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