Извлечь состояние React Router в URL

Я использую react-router и redux-simple-router в сочетании с рендерингом на стороне сервера, и когда я перехожу к URL-адресу, например:

routeActions.push({ pathname: '/main', state: 'some_state'});

Я хочу иметь возможность извлечь some_state из запроса, чтобы я мог отобразить начальное состояние редукции и отправить его обратно клиенту. Как извлечь состояние из запроса на стороне сервера? Куда это поместили история и реактивный маршрутизатор?

Это особенно важно для мобильных устройств, потому что настольные компьютеры, как я тестировал, не запускают отдельные запросы, а мобильные устройства делают это, что означает, что страница перезагружается с новым начальным состоянием.


person barndog    schedule 18.01.2016    source источник


Ответы (1)


state соответствует состоянию в History API — он связан с текущим местоположением, но он доступен только на клиенте, поэтому он не подходит для передачи произвольных данных, если вашему приложению требуется поддержка рендеринга на стороне сервера.

Если вы хотите, чтобы он был доступен на сервере, вам нужно сделать его частью URL-адреса. возможно, как строка запроса.

Кроме того: состояние местоположения полезно другими способами в изоморфных/универсальных приложениях, например, для передачи данных формы POST для обработки с помощью хука onEnter или для передачи данных формы и ошибок проверки для использования перехода перенаправления. ответить, отобразив недопустимую форму в том же сценарии.

person Jonny Buchanan    schedule 18.01.2016