Dom 如何告诉react.js不要协调或干扰某个元素?

Dom 如何告诉react.js不要协调或干扰某个元素?,dom,d3.js,svg,reactjs,Dom,D3.js,Svg,Reactjs,我的一个组件有一个div元素,我想在其中溢出并处理/变异我自己的DOM,而不会产生任何干扰 我正在使用d3.js进行手动DOM操作,不,我不是在寻找react-d3解决方案,我需要简单的d3 除了reacts控制台警告之外,所有这些都对我很有效: warning.js:44警告:标签上的未知属性'xmlns'。从元件上拆下此道具。有关详细信息,请参阅 及 js:44警告:未知的DOM属性类。你是说班名吗? 因此,它抱怨我使用class而不是className,或者有一些html属性不是r

我的一个组件有一个
div
元素,我想在其中溢出并处理/变异我自己的DOM,而不会产生任何干扰

我正在使用d3.js进行手动DOM操作,不,我不是在寻找react-d3解决方案,我需要简单的d3

除了reacts控制台警告之外,所有这些都对我很有效:


warning.js:44警告:标签上的未知属性'xmlns'。从元件上拆下此道具。有关详细信息,请参阅


js:44警告:未知的DOM属性类。你是说班名吗?

因此,它抱怨我使用
class
而不是
className
,或者有一些html属性不是react样式等等

我想告诉React,从这个组件和下面的组件,它不应该干扰,我将手动管理这个组件下面的DOM

代码如下所示:

import React, { Component } from 'react';
import { findDOMNode } from 'react-dom';
import SomeD3CustomComp from '../some-d3-custom-comp.js';

export default class MyComponent extends Component {

  componentDidMount() {
   this.injectChart();
  }

  componentDidUpdate() {
   this.injectChart();
  }

  injectChart() {
    const comp = findDOMNode(this.refs.nonReactContainer);
    const { chart } = this.props;
    const { shouldRender, data } = chart;
    if (shouldRender) {
      SomeD3CustomComp.render(comp, data);
    }
  }

  render() {
    const { chart, someOtherData } = this.props;
    const { shouldRender } = chart;
    return(
      <article>
        {
          shouldRender &&
          <div className="non-react-element" ref="nonReactContainer"></div>
        }
        <div className="react-element">{someOtherData}</div>
      </article>
    );
  }
}
import React,{Component}来自'React';
从'react dom'导入{findDOMNode};
从“../some-d3-custom-comp.js”导入SomeD3CustomComp;
导出默认类MyComponent扩展组件{
componentDidMount(){
这个.injectChart();
}
componentDidUpdate(){
这个.injectChart();
}
图(){
const comp=findDOMNode(此.refs.nonReactContainer);
const{chart}=this.props;
const{shouldRender,data}=图表;
if(shouldRender){
一些定制组件渲染(组件、数据);
}
}
render(){
const{chart,someOtherData}=this.props;
const{shouldRender}=图表;
返回(
{
应该呈现&&
}
{someOtherData}
);
}
}

更新: 在
shouldComponentUpdate
上返回
false
的建议并没有带走我上面提到的错误消息,可能是因为
shouldComponentUpdate
只有在
componentDidMount
上第一次注入后才发生更新

这种方法的另一个问题是,if return
false
code永远不会到达实现更多逻辑的render方法,例如在上面的示例中,我检查是否渲染容器非react元素。这就是我在前一个状态下删除所有先前注入的元素的方法

所以我仍然在寻求帮助


解决了的! 错误报警:/n刚刚发现这些警告消息与代码的不同部分有关。这是一个奇怪的巧合,从这个新功能开发出来的时候起,就出现了一些老问题。结论:仔细查看警告信息! 因此,与d3的集成实际上效果很好。

可能与