首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在IE11中不更新属性的Redux

在IE11中不更新属性的Redux
EN

Stack Overflow用户
提问于 2016-03-10 10:24:06
回答 3查看 10.3K关注 0票数 11

我遇到了一个关于React的奇怪问题& Internet 11中的Redux。

我用redux & thunk+promise中间件创建了一个React应用程序。上述应用程序在Chrome、safari和firefox中完全正常工作,但在Internet中运行时,React/Redux没有更新11个道具。

在检查网络选项卡时,我可以看到Http请求被激发得很好。在Redux还原器中记录这个结果也会给出预期的结果。但是,似乎返回新状态并不会更新道具。或者触发任何组件的重新呈现。(仅在IE中)。

我尝试谷歌,看看是否有人在同一条船上,但我找不到与我的问题相匹配的任何东西。

TLDR;Redux不更新道具并在返回状态后触发组件的重新呈现/更新。(仅在IE11中)。

减速机:

代码语言:javascript
运行
复制
const customers = (state = {customers: []}, action) => {
    switch (action.type) {
        case GET + _FULFILLED:
            return Object.assign({}, state, {
                customers: action.payload
            });
            break;
    }
}

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

控制台中也没有错误。

解决了,我不得不添加一个object.assign填充;我不知道在使用babel之后这是必需的

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-03-10 14:58:10

这个问题是因为is 11的ES6支持很差。我发现您需要同时填充PromisesObject.assign

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

票数 6
EN

Stack Overflow用户

发布于 2019-01-22 10:05:49

有一个类似的问题,但解决方案不是与Polyfill (babel-polyfill)相关,因为我已经导入了它们,而是我的axios实例配置。我找到了问题的答案,here。基本上,我所要做的就是通过在axios实例配置中添加以下头来禁用缓存:

代码语言:javascript
运行
复制
const instance = axios.create({
  headers: {
    Pragma: "no-cache"
  }
});

显然,其他浏览器(firefox、chrome等)不要按请求缓存太多,但是在IE情况下,必须显式地设置这些头。

票数 2
EN

Stack Overflow用户

发布于 2016-03-10 10:28:59

IE11不支持承诺,您需要使用类似于--> https://github.com/stefanpenner/es6-promise的多填充

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35913711

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档