Redux不更新IE11中的属性

Nic*_*ijn 11 javascript reactjs redux

我在Internet Explorer 11中遇到了关于React和Redux的奇怪问题.

我用redux&thunk + promise中间件创建了一个React应用程序.所说的应用程序在Chrome,safari和firefox中完全正常,但是当在Internet Explorer 11中运行时,React/Redux不会更新道具.

在检查网络选项卡时,我可以看到Http请求被解雇了.在Redux Reducer中记录此结果也会得到预期的结果.但似乎返回新状态不会更新道具.或者根本触发任何重新渲染组件.(仅限IE).

我试过谷歌,看看是否有人在同一条船上,但我找不到任何匹配我的问题.

TLDR ; Redux在返回状态后不更新道具并触发组件的重新渲染/更新.(仅限IE11).

减速器:

const customers = (state = {customers: []}, action) => {
    switch (action.type) {
        case GET + _FULFILLED:
            return Object.assign({}, state, {
                customers: action.payload
            });
            break;
    }
}
Run Code Online (Sandbox Code Playgroud)

action.payload具有正确的值; 返回似乎没有更新道具.

控制台中也没有错误

已解决我必须添加一个object.assign polyfill; 不知道使用babel后是否需要

Fel*_*ner 6

这个问题是因为IE11的ES6支持不佳.我发现,你需要填充工具都PromisesObject.assign.

至于Babel,可能是因为Babel只将非标准代码转换为标准代码.大多数浏览器已默认实现Promises/ Object.assign所以我猜最新的Babel版本不再需要将其转换为ES5代码

  • babel-polyfill为我修复了所有上述IE11问题,​​但仍未触发重新渲染. (2认同)