React 15.4 から React 16.4.1 (react-dom も 16.4.1 にアップグレード) にアップグレードしようとした後、ルーターから次のエラー メッセージが表示されます。
TypeError: _nextProps.children is not a function
at ReactDOMServerRenderer.render (/var/www/web/node_modules/react-dom/cjs/react-dom-server.node.development.js:2491:55)
at ReactDOMServerRenderer.read (/var/www/web/node_modules/react-dom/cjs/react-dom-server.node.development.js:2354:19)
at renderToString (/var/www/web/node_modules/react-dom/cjs/react-dom-server.node.development.js:2726:25)
at render (/var/www/web/server/routes/others.jsx:141:24)
at process._tickCallback (internal/process/next_tick.js:68:7)
コード:
const render = () => {
const body = renderToString(
<MuiThemeProvider muiTheme={muiTheme}>
<ThemeProvider theme={theme}>
<Provider store={store}>
<IntlProvider>
<RouterContext {...renderProps} />
</IntlProvider>
</Provider>
</ThemeProvider>
</MuiThemeProvider>
);
render
ここで定義されていますが、後で同じルーティング ファイルに返されます。
Promise.all(prefetchData(renderProps, store))
.then(render)
.catch(prefetchError => next(prefetchError));
React 15.x から React 16.x にアップグレードするために、推奨される手順に従いました。
React 16 との material-ui の互換性に関する関連する問題を見つけたので:
https://github.com/mui-org/material-ui/issues/8434
https://github.com/mui-org/material-ui/issues/7795
このエラー メッセージは、material-ui 0.2x と React 16.x の間の非互換性が原因で発生するのではないかと考えていました。つまり、次のことを行うために material-ui 1.x にアップグレードする必要があるかどうかを知りたいのです。 React 16.x を使用できる