小编Aze*_*rov的帖子

React Internet Explorer 11渲染映射Overutable集合错误的结果

我在Internet Explorer 11中的React中映射不可变数组对象时遇到问题.

例如,我有服务数组的响应:

array = [{title: 'Hello world'}, {title: 'Night view'}]
Run Code Online (Sandbox Code Playgroud)

我将此数组转换为reducer中的immutable并存储它.然后在TitlesContainer渲染方法中尝试迭代项目:

render () {
  const { array } = this.props
  return (
    <ul>
      {array.map((item, index) => {
        return <li key={index}>{item.get('title')}</li>
      })}
    </ul>
  )
}
Run Code Online (Sandbox Code Playgroud)

一切正常,在Chrome,Opera,Firefox中都可以.但是在Internet Explorer 11中我遇到了这个错误:

不变违规:对象无效作为React子对象(找到:List [[object Object],[object Object]]).如果您要渲染子集合,请使用数组,或使用React附加组件中的createFragment(object)包装对象.检查渲染方法TitlesContainer.

webpack.config.js我已经包含babel-polyfill到模块,因为IE11的enrty,它抛出此之前,"无极没有定义".它修复了promise问题,但仍然存在不可变数组中的迭代问题.

有使用的解决方法array.toJS().map而不是,array.map但我认为必须有一种方法使其工作.

javascript internet-explorer reactjs webpack immutable.js

5
推荐指数
1
解决办法
1289
查看次数