Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/462.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 访问React中的window.opener变量_Javascript_Reactjs - Fatal编程技术网

Javascript 访问React中的window.opener变量

Javascript 访问React中的window.opener变量,javascript,reactjs,Javascript,Reactjs,好吧,我做到了,它实际上很基本,但不知怎么的,我一开始并没有看到它。 我所做的是使用我的阵列创建一个模块并将其导出: export let openedWindows = [] 然后在App.js上导入模块: import * as globalVars from './global'; 然后在componentDidMount方法中将其附加到窗口: window.openedWindows = globalVars.openedWindows 这样,当我打开一个新窗口时,我只需将窗口对

好吧,我做到了,它实际上很基本,但不知怎么的,我一开始并没有看到它。 我所做的是使用我的阵列创建一个模块并将其导出:

export let openedWindows = []
然后在App.js上导入模块:

import * as globalVars from './global';
然后在
componentDidMount
方法中将其附加到窗口:

window.openedWindows = globalVars.openedWindows 
这样,当我打开一个新窗口时,我只需将窗口对象推送到数组中:

  handleAddWindow = (newWindow) => {
    window.openedWindows.push(newWindow)
  }
我可以关闭它或从另一个窗口/选项卡执行任何我想/可以执行的操作:

    handleCloseWindow = () => {
        window.opener.openedWindows[index].close()
        window.opener.openedWindows.splice(index,1) 
    }

希望对某人有所帮助:)

你是说
window.opener
在打开的窗口中不可用吗?它可用,我已经检查过了
if(window.opener){alert('Opend from other window')}
那么具体的问题是什么?我得到了
类型错误:当我尝试使用
window.opener.global.openedWindows[0].close()
时,无法读取未定义的属性“openedWindows”
,因此我不知道如何访问变量如果将其作为全局导入,您如何将其附加到
window
?名为
global
的模块变量不是全局变量,而是在该模块中。