Мой app.jsx был по сути построен на примере редукса в репозитории 4Catalyzer / found: https://github.com/4Catalyzer/found/blob/master/examples/redux/src/index.js
То, что у меня в основном выглядит так:
class CustomerApp extends Component {
constructor() {
super();
this.state = {
locale: language,
translations,
};
}
componentDidMount() {
initializeGA();
}
render() {
return (
<IntlProvider locale={this.state.locale} messages={this.state.translations}>
<div style={{ height: '100%' }}>
<ErrorBoundary>
{ this.props.children }
</ErrorBoundary>
</div>
</IntlProvider>
);
}
}
const routeConfig = [
{
path: '/',
Component: CustomerApp,
children: customerRoutes,
},
];
const composeEnhancers = window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ || compose;
const store = createStore(
combineReducers(reducers),
composeEnhancers(
createHistoryEnhancer({
protocol: new BrowserProtocol(),
middlewares: [ queryMiddleware ],
}),
createMatchEnhancer(
new Matcher(routeConfig),
),
applyMiddleware(thunk.withExtraArgument(vhx)),
),
);
store.dispatch(FarceActions.init());
const ConnectedRouter = createConnectedRouter({
render: createRender({
renderError: ({ error }) => ( // eslint-disable-line react/prop-types
<div>
{error}
</div>
),
}),
});
ReactDOM.render(
<Provider store={store}>
<ConnectedRouter resolver={resolver} matchContext={{ store }} />
</Provider>,
document.getElementById('customer-app'),
);
При использованииРеагируйте, это работает просто отлично.Но когда я пытаюсь вставить Preact / Preact-Compat / Preact-Redux, я всегда получаю эту ошибку:
preact-compat.es.js?017d:219 Uncaught Error: Children.only() expects only one child.
at Object.only (preact-compat.es.js?017d:219)
at StaticContainer.render (StaticContainer.react.js?073e:63)
at callMethod (preact-compat.es.js?017d:504)
at StaticContainer.eval [as render] (preact-compat.es.js?017d:515)
at renderComponent (preact.mjs?f144:518)
at renderComponent (preact.mjs?f144:546)
at renderComponent (preact.mjs?f144:546)
at setComponentProps (preact.mjs?f144:467)
at buildComponentFromVNode (preact.mjs?f144:633)
at idiff (preact.mjs?f144:244)
В некоторых случаях я использую Webpack 3.11.0 для комплектации и установилмои псевдонимы:
'preact': 'preact',
'react': 'preact-compat',
'react-dom': 'preact-compat',
'react-redux': 'preact-redux'
Я застрял на этой ошибке и не совсем уверен, как отлаживать.Буду признателен за любую помощь или руководство!