Преактивное выбрасывание Children.only () ожидает только одного ребенка при использовании 4Catalyzer / found - PullRequest
0 голосов
/ 12 сентября 2018

Мой 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'

Я застрял на этой ошибке и не совсем уверен, как отлаживать.Буду признателен за любую помощь или руководство!

...