Я искал и искал безрезультатно, все ссылки в Google выделены фиолетовым цветом.
У меня есть базовая настройка preact, и я пытаюсь заставить серверный рендеринг работать, но неважно, чтоЯ пытаюсь получить эту ошибку:
Warning: Failed prop type: Invalid prop `children` supplied to `Router`, expected a ReactNode.
in Router
Экспресс-сервер:
app.get('/', (req, res) => {
const App = () => (
<StaticRouter location={req.url} context={{}}>
<AppComponent />
</StaticRouter>
);
console.log(render(<App />)); // <undefined></undefined>
res.send('hello');
});
AppComponent:
@withRouter
export class AppComponent extends Component {
render() {
return (
<Switch>
<Route exact path="/" component={Home} />
</Switch>
);
}
}
Конфигурация Webpack:
module.exports = {
entry: './server.tsx',
output: {
path: join(__dirname, 'dist'),
filename: 'server.js'
},
target: 'node',
externals: [externals()],
resolve: {
extensions: ['.ts', '.tsx', '.js'],
alias: {
react: 'preact-compat',
'react-dom': 'preact-compat',
'create-react-class': 'preact-compat/lib/create-react-class'
}
},
module: {
rules: [
{
test: /\.tsx?$/,
exclude: /node_modules/,
loader: 'ts-loader'
}
]
}
};
Я могу получать контент в SSR, только не с помощью StaticRouter.Это всегда выдает эту ошибку.Я пробовал вложение с дочерним элементом, а не вложение, удаление маршрутов и т. Д.
Версии:
react-router v5.0
react-router-dom v5.0
preact v8.4.2
preact-compat v3.18.5
preact-render-to-string v4.1.0