我在 Internet Explorer 11 中遇到了一个关于 React 和 Redux 的奇怪问题。
我使用 redux & thunk+promise 中间件创建了一个 React 应用程序。所述应用程序在 Chrome、Safari 和 Firefox 中运行完全正常,但在 Internet Explorer 中运行时,React/Redux 不会更新 11 Prop 。
在检查网络选项卡时,我可以看到 Http 请求被触发得很好。在 Redux reducers 中记录此结果也给出了预期的结果。但似乎返回新状态并没有更新 Prop 。或者触发任何组件的重新渲染。 (仅在 IE 中)。
我尝试谷歌查看是否有人在同一条船上,但我找不到任何符合我的问题的东西。
TLDR;返回状态后,Redux 不更新 Prop 并触发组件的重新渲染/更新。 (仅在 IE11 中)。
reducer :
const customers = (state = {customers: []}, action) => {
switch (action.type) {
case GET + _FULFILLED:
return Object.assign({}, state, {
customers: action.payload
});
break;
}
}
action.payload 有正确的值;返回似乎没有更新 Prop 。
控制台也没有错误
已解决 我必须添加一个 object.assign polyfill;在使用 babel 后不知道这是必需的
最佳答案
这个问题是因为 IE11 对 ES6 的支持很差。我发现您需要填充 Promises
和 Object.assign
。
至于 Babel,这可能是因为 Babel 只将非标准代码转译为标准代码。大多数浏览器已经默认实现了 Promises
/Object.assign
所以我猜最新的 Babel 版本不再需要将它转换为 ES5 代码
关于javascript - Redux 不更新 IE11 中的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35913711/