ошибки preact и response-router с помощью «Invalid prop` children` » - PullRequest
0 голосов
/ 22 мая 2019

Я искал и искал безрезультатно, все ссылки в 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
...