После попытки обновления с React 15.4 до React 16.4.1 (также обновил реагировать на 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:
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