Я использую 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." />
Любая помощь будет принята с благодарностью!