为什么unmountComponentAtNode给我“ React的另一个副本”警告

时间:2019-08-02 17:00:00

标签: reactjs twitter-bootstrap charts

我想在引导弹出窗口中显示chart.js / chart。为此,我定义了两个组件:一个用于Popover,一个用于Chart。在我的Popover组件中,我处理componentDidMount()并覆盖了Popover的模板,为Popover主体指定了ID,以便可以将图表安装到Popover主体中:

componentDidMount() {
    $("#button").popover({
    title: "My Chart",
    template: '<div class="popover" role="tooltip"><div class="arrow"></div><h3 class="popover-header"></h3><div class="popover-body" id="popover-body"></div></div>',
    html: true,
    trigger: "focus"
   }).popover("show");
   ReactDOM.render(<MyChart/>, document.getElementById('popover-body'));
  }

然后尝试在卸载Popover组件时卸载图表组件:

  componentWillUnmount() {
    ReactDOM.unmountComponentAtNode(document.getElementById('popover-body'))
    $("#button").popover("hide");
  }

但这给了我警告:

  

警告:unmountComponentAtNode():您尝试尝试的节点   卸载是由React的另一个副本呈现的

为什么会出现此错误? Popover组件不是Chart组件的父级吗?而我正在处理状态变化中的所有事情?

jsFiddle

的完整示例

0 个答案:

没有答案