Как может react-router
правильно обрабатывать 404 страницы для динамического контента в универсальном приложении?Реактивный маршрутизатор: не найден (404) для динамического содержимого?
Предположим, я хочу отобразить страницу пользователя с таким маршрутом, как '/user/:userId'
. Я бы конфиг так:
<Route path="/">
<Route path="user/:userId" component={UserPage} />
<Route path="*" component={NotFound} status={404} />
</Route>
Если я прошу /user/valid-user-id
, я получаю страницу пользователя.
Если я прошу /foo
, я получаю правильный 404.
Но что, если я прошу /user/invalid-user-id
. При получении данных для пользователя я пойму, что этого пользователя не существует. Таким образом, правильная вещь, чтобы сделать швы быть:
- Выводит 404 страницы
- Вернуть код 404 HTTP (для серверной стороны рендеринга)
- Keep URL-адреса, как это (я не хочу перенаправление)
Как это сделать? Это похоже на стандартное поведение. Я удивлен, что не найти ни одного примера ...
Edit:
Швы, как я не единственный, кто с ним бороться. Нечто подобное помогло бы много: https://github.com/ReactTraining/react-router/pull/3098
Поскольку мое приложение не будет идти жить в ближайшее время, я решил подождать, чтобы увидеть, что следующий маршрутизатор реагировать-версия может предложить ...
Как вы извлекаете данные пользователя? Я думаю, что код будет неотъемлемой частью ответа, который вы ищете. –
@KeesvanLierop Я использую redux. Таким образом, я получил бы ударное действие, возвращающее обещание. Ошибка, возвращенная обещанием, указывает на то, что данный userId не существует. По умолчанию это действие будет инициировано моим компонентом UserPage. Но, возможно, имеет смысл сделать это до фактического рендеринга компонента. Я не уверен ... Но я открыт для предложений, чтобы он работал с реактивным маршрутизатором ... –