Internet explorer 将redux存储传递到新窗口在IE中不起作用
某些上下文: 我有一个应用程序,它使用React,Redux,React-Redux。我需要在新的浏览器窗口中打开应用程序并保持窗口同步 我通过在父窗口中将redux存储作为全局窗口来实现这一点。一些代码:Internet explorer 将redux存储传递到新窗口在IE中不起作用,internet-explorer,reactjs,redux,react-redux,Internet Explorer,Reactjs,Redux,React Redux,某些上下文: 我有一个应用程序,它使用React,Redux,React-Redux。我需要在新的浏览器窗口中打开应用程序并保持窗口同步 我通过在父窗口中将redux存储作为全局窗口来实现这一点。一些代码: const getStore = () => { if (window.opener) return window.opener.__reduxStore__; if (!window.__reduxStore__) { window.
const getStore = () => {
if (window.opener)
return window.opener.__reduxStore__;
if (!window.__reduxStore__) {
window.__reduxStore__ = createStore(todoApp);
}
return window.__reduxStore__;
}
问题:
在IE 11中打开新窗口时,尝试改变全局状态时,我得到一个错误:Function.prototype.toString:“this”不是函数对象
。不幸的是,我没有得到堆栈跟踪,而是文件:eval code(11084),行:31,列:3
,这导致了
// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative
})(Function.prototype, TO_STRING, function toString(){
return typeof this == 'function' && this[SRC] || $toString.call(this);
});
还值得注意的是,在IE中(与Chrome或FireFox不同),redux store对象Symbol(react.element)\uuu
上有一个属性,它是未定义的
我已经修改了redux-todos示例,它展示了这个问题;见上面的区别
我真的不知道如何跟进这件事。这是一个重复使用问题,一个IE问题,一个反应问题吗
另外,IE不是在受保护模式下运行。我为这种情况创建了一个简单的中间件。 这基本上是使用本地存储来保存最后一个操作,并在其他选项卡中调度相同的操作
希望能对您有所帮助。您对此有过明确的认识吗?我遇到了一个类似的问题,
存储
在窗口
中作为全局变量公开。在打开的窗口中,我得到了window.opener
,当我调用opener.dispatch
时,我得到了这个确切的错误。嘿@DaveNewton,不幸的是,这个问题没有得到解决。