【发布时间】:2016-03-10 10:24:06
【问题描述】:
我在 Internet Explorer 11 中遇到了一个关于 React 和 Redux 的奇怪问题。
我用 redux 和 thunk+promise 中间件创建了一个 React 应用程序。所述应用程序在 Chrome、safari 和 firefox 中运行良好,但在 Internet Explorer 中运行时,React/Redux 没有更新 11 个道具。
在检查网络选项卡时,我可以看到 Http 请求被触发得很好。在 Redux reducer 中记录这个结果也给出了预期的结果。但似乎返回新状态不会更新道具。或者完全触发任何组件的重新渲染。 (仅在 IE 中)。
我尝试谷歌查看是否有人在同一条船上,但我找不到任何符合我的问题的东西。
TLDR; Redux 在返回状态后不更新 props 并触发组件的重新渲染/更新。 (仅在 IE11 中)。
减速机:
const customers = (state = {customers: []}, action) => {
switch (action.type) {
case GET + _FULFILLED:
return Object.assign({}, state, {
customers: action.payload
});
break;
}
}
action.payload 具有正确的值;返回似乎没有更新道具。
控制台也没有错误
已解决我必须添加一个 object.assign polyfill;不知道使用 babel 后需要这样做
【问题讨论】:
-
我遇到过这个问题。原来我需要对我的 ajax 请求应用缓存清除。
标签: javascript reactjs redux