【发布时间】: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