Серверный рендеринг не может получить строку вложенного маршрута

#reactjs #react-router #react-router-v4 #server-rendering

#reactjs #react-маршрутизатор #react-router-v4 #серверный рендеринг

Вопрос:

Когда я посещаю /m/song , htmlstring содержит только компонент Layouts

 htmlstring = renderToString(
    <Provider store={store}>
        <StaticRouter location={ctx.url} context={context}>
            {renderRoutes(routesConfig)}
        </StaticRouter>
    </Provider>
);


const routesConfig = [{
    component: Layouts,
    routes:[{path: '/m/song', componentName: 'Song', component: Song}]
    …
  

Строка htmlstring должна содержать как макеты, так и компоненты композиции.

Ответ №1:

Включаете ли вы следующее в рендеринг вашего компонента ‘Layout’? {renderRoutes(routesConfig.routes)}

Согласно документации, npmjs.com/package/react-router-config , дочерние маршруты (‘Song’ в вашем случае) не будут отображаться без этой строки.