Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/23.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
Reactjs 未能执行';removeChild';组件正在卸载时_Reactjs - Fatal编程技术网

Reactjs 未能执行';removeChild';组件正在卸载时

Reactjs 未能执行';removeChild';组件正在卸载时,reactjs,Reactjs,我目前正在集成一个视频聊天,人们可以在不同的房间之间切换。那部分很好用。现在我想添加一个附加组件。如果在加载每日组件时单击“另一个组件”,则会出现错误: 无法在“节点”上执行“removeChild”:要删除的节点为 不是此节点的子节点 错误的视频示例: 我创建了以下沙箱来演示该问题: 问题似乎与dailyRef.current.destroy()有关。如果视频未处于“已加载完成”状态,则无法执行它。这是每日销毁方法的实现 async destroy(){ 试一试{ “已加入会议”==此。_me

我目前正在集成一个视频聊天,人们可以在不同的房间之间切换。那部分很好用。现在我想添加一个附加组件。如果在加载每日组件时单击“另一个组件”,则会出现错误:

无法在“节点”上执行“removeChild”:要删除的节点为 不是此节点的子节点

错误的视频示例:

我创建了以下沙箱来演示该问题:


问题似乎与
dailyRef.current.destroy()有关。如果视频未处于“已加载完成”状态,则无法执行它。

这是
每日销毁
方法的实现

async destroy(){
试一试{
“已加入会议”==此。_meetingState&&(等待此。离开());
}捕获(t){}
设t=this.iframe();
if(t){
设e=t.parentElement;
e&e.removeChild(t);
}
window.removeEventListener(“message”,this.\u messageListener);
}
您可以从这些必要的位中提取,并且只能清除事件侦听器

  return () => {
    try {
      "joined-meeting" === daily._meetingState && (await daily.leave());
    } catch (t) {}

    window.removeEventListener("message", daily._messageListener);
};

这是
daily.destroy
方法的一个实现

async destroy(){
试一试{
“已加入会议”==此。_meetingState&&(等待此。离开());
}捕获(t){}
设t=this.iframe();
if(t){
设e=t.parentElement;
e&e.removeChild(t);
}
window.removeEventListener(“message”,this.\u messageListener);
}
您可以从这些必要的位中提取,并且只能清除事件侦听器

  return () => {
    try {
      "joined-meeting" === daily._meetingState && (await daily.leave());
    } catch (t) {}

    window.removeEventListener("message", daily._messageListener);
};