【问题标题】:react-redux Provider gives error “onlyChild must be passed a children with exactly one child” in IE 10/11react-redux Provider 在 IE 10/11 中给出错误“onlyChild 必须传递一个只有一个孩子的孩子”
【发布时间】:2016-09-08 14:11:20
【问题描述】:

此组件在 Chrome、Safari、Firefox 和 MS Edge 中的工作方式与预期完全一样:

import { Provider } from 'react-redux';
import Store from './Store';
import Root from './Root';

class AppProvider extends React.Component {
  render() {
    return (
      <Provider store={Store}>
        <Root />
     </Provider>
     );
  }
}

export default AppProvider;

但在 IE 10/11 上,它会抛出: “警告:道具类型失败:提供给 Provider 的道具 children 无效,需要一个 ReactElement。”

但是 Root 是单个 ReactElement 吗?这是下面的 Root 元素:

import Main from './Main';
import ProjectList from './ProjectList';
import ContactList from './ContactList';

import { Router, Route, IndexRoute } from 'react-router';
import { History } from './History';

class Root extends React.Component {
  render() {
    return (
      <Router history={History}>
        <Route path="/" component={Main}>
          <IndexRoute component={ProjectList}></IndexRoute>
          <Route path="/:projectId" component={ContactList}></Route>
        </Route>
      </Router>
    );
  }
}

export default Root;

因为这个问题,我实际上只创建了 Root;以前,我只是将路由器直接放入提供程序,没有来自其他浏览器的任何参数。

【问题讨论】:

  • 也许检查一下 chrome 中的 React 开发工具,看看是否有问题发生
  • 你的 Root 组件中的构造函数也没有做任何事情,你可以省略它。
  • 你说得对,我几乎是迷信地添加了它,看看它是否与它有任何关系。

标签: javascript internet-explorer reactjs redux react-redux


【解决方案1】:

这是我自己的错误造成的。我不知何故使用了两种不同版本的 React。

【讨论】:

    猜你喜欢
    • 2021-12-04
    • 2017-08-17
    • 2022-11-09
    • 1970-01-01
    • 2018-02-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-05
    相关资源
    最近更新 更多