此组件在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上,它抛出:"警告:失败的道具类型:无效的道具children
提供给Provider
,期望一个单一的ReactElement。"
但根是一个单一的ReactElement?下面是根元素:
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;在此之前,我只是把路由器直接放到了提供商中,没有从其他浏览器中输入任何参数。
这是我自己的错误造成的。我使用了两个不同版本的React