У меня есть React Route со значительным пользовательским вводом, с которым я хочу использовать компонент Prompt. Я импортирую его из response-router-dom без ошибок и добавляю компонент в метод рендеринга компонента класса, но, несмотря ни на что, предупреждение о приглашении никогда не появляется, и пользователь может свободно перемещаться со страницы, не видя никакого предупреждения .
Я пробовал:
- Помещение компонента с помощью когда = {aStateBooleanVariable}, а также когда = {true} и вообще без атрибута when.
- Использование функции для сообщения.
- Гарантирование того, что Маршрут, на котором он находится, является точным путем.
- Импортирование его из реакции-маршрутизатора вместо реакции-маршрутизатора-dom.
- Перемещение компонента в методе рендеринга.
- Перемещение подсказки в сам оператор Switch в компоненте App, который оборачивает все в BrowserRouter.
Ничего из того, что я пробовал получил приглашение на самом деле показать или запретить пользователю переходить со страницы, и я не смог найти что-либо в документах или расширенном поиске где-либо У кого-то еще была эта проблема. Кто-нибудь имеет какие-либо идеи, почему это просто даже не начинает работать?
Я не совсем уверен, какой код поставить, поскольку все это в значительной степени шаблонный response-router-dom.
Это мой оператор switch.jsx:
return (
<BrowserRouter>
<header>
{loggedInUser ? <NavbarComp loggedInUser={loggedInUser} setLoggedInUser={setLoggedInUser} /> : null}
</header>
<Switch>
<PrivateRoute path="/ged/campaigns/new" component={CampaignNew} loggedInUser={loggedInUser} />} />
<PrivateRoute path="/ged/campaigns/:id" component={Campaign} loggedInUser={loggedInUser} />} />
<PrivateRoute path="/ged/characters/new" component={CharGen} loggedInUser={loggedInUser} />} />
<PrivateRoute path="/ged/characters/:id" component={CharacterMain} loggedInUser={loggedInUser} />} />
<PrivateRoute path="/ged" component={GEDHome} loggedInUser={loggedInUser} />} />
<Route path="/" component={Home} loggedInUser={loggedInUser} setLoggedInUser={setLoggedInUser} />} />
<Route component={DeadPage} />
</Switch>
</BrowserRouter>
)
Я импортирую компонент следующим образом:
import {Prompt} from 'react-router-dom';
И включаю компонент в верхней части его метод визуализации родителя return:
<Prompt message="You have changes that will be lost if you leave without saving." />
Какой другой код может заставить его работать молча, как это?