Size: a a a

2017 July 13

AE

Anton Egorov in 5minreact
и соответственно браузер уже сам запишет куку, плюс сервер в этом же ответе может отдать всю необходимую информацию о пользователе
источник

NK

ID:123020955 in 5minreact
вот и мне интресно, поэтому я вам и обратился,
источник

NK

ID:123020955 in 5minreact
вобщем я понял что все должно идти через мой сервер на ноде
источник

AE

Anton Egorov in 5minreact
накидал gist и забыл скинуть
источник

AE

Anton Egorov in 5minreact
в общем, хэндлер, отдающий реакт, выглядит примерно так: https://gist.github.com/egorovli/2df024dc562f4b685be982cad4a08a14
источник

AE

Anton Egorov in 5minreact
тут самая интересная часть — как асинхронно подгружать данные во время SSR
источник

NK

ID:123020955 in 5minreact
а роутер какой версии?
источник

NK

ID:123020955 in 5minreact
используете
источник

AE

Anton Egorov in 5minreact
"react-router-dom": "^4.1.1",
"react-router-redux": "^5.0.0-alpha.6"
источник

NK

ID:123020955 in 5minreact
отлично
источник

AE

Anton Egorov in 5minreact
логика для загрузки на 28 строчке
источник

AE

Anton Egorov in 5minreact
файл routes выглядит примерно так:

const routes = [
 {
   path: '/admin',
   exact: true,
   component: Dashboard
 },
 {
   path: '/admin/posts',
   exact: true,
   component: PostsList,
   loadData: () => loadPosts()
 },
 {
   path: '/admin/posts/:id',
   component: PostComponent,
   loadData: ({ params: { id } }) => loadPost(id)
 },
 ...
 ]
источник

AE

Anton Egorov in 5minreact
если нужно что-то загрузить для раута, то в его определении есть функция loadData, которая возвращает промис
источник

NK

ID:123020955 in 5minreact
а у меня еще вопрос как вы оборачиваете роуты оберткой react-router-redux
источник

NK

ID:123020955 in 5minreact
у вас там StaticRouter
источник

AE

Anton Egorov in 5minreact
это серверный код, там StaticRouter в context записывает редирект, если в процессе рендеринга появился <Redirect />
источник

AE

Anton Egorov in 5minreact
а react-router-redux на клиенте:

import { Provider } from 'react-redux'
import { ConnectedRouter } from 'react-router-redux'

const render = Component => {
 ReactDOM.render(
   <Provider store={store}>
     <ConnectedRouter history={history}>
       <Component />
     </ConnectedRouter>
   </Provider>,
   document.getElementById('root')
 )
}

render(Root)
источник

NK

ID:123020955 in 5minreact
а получается ConnectedRouter на сервере не нужен
источник

AE

Anton Egorov in 5minreact
не, не нужен
источник

NK

ID:123020955 in 5minreact
ого го, а я его прикрутил к серверу, и писал свою обертку, и не понимал почему не работает,
источник