Javascript ReactJS:如何添加不受支持的React组件(JSX标记)?

Javascript ReactJS:如何添加不受支持的React组件(JSX标记)?,javascript,reactjs,Javascript,Reactjs,ReactJS中还没有定义一些标记,比如SVG名称空间中的 React中如何定义React.DOM.div和React.DOM.span等基本节点?或者像和这样的基本标记是如何在JSX中定义的 我可以使用扩展React的相同方法来定义标准的标记吗?我不想分叉和扩展React Github项目。实现这一点最简单(也是最丑陋)的方法是使用危险的LysetinerHTML进行渲染:只需将标记作为字符串生成,并将其作为innerHTML传递给包装div即可 否则,您需要深入研究React内部,即Reac

ReactJS中还没有定义一些标记,比如SVG名称空间中的

React中如何定义
React.DOM.div
React.DOM.span
等基本节点?或者像
这样的基本标记是如何在JSX中定义的

我可以使用扩展React的相同方法来定义标准的
标记吗?我不想分叉和扩展React Github项目。

实现这一点最简单(也是最丑陋)的方法是使用危险的LysetinerHTML进行渲染:只需将
标记作为字符串生成,并将其作为innerHTML传递给包装div即可


否则,您需要深入研究React内部,即
ReactDOM.js
中的
createDOMComponentClass
函数。如果你这么做了,我打赌你可以请求拉取请求来合并标签。

我不能用任何其他标签包装标签,因为SVG animate总是与其父元素相关。为了让它稍微不那么可怕,您还可以自己制作一个名为“animate”的react组件,它本质上使用逻辑进行
危险的HTML
包装,以从发送的道具生成正确的字符串。这允许您在其他组件中使用“正常”,并在需要时有一个中心区域对其进行调试。当我这样做的时候,我还在React.createClass()调用之前做了一个小检查,检查React.DOM.animate是否存在,如果存在,那么在开发人员模式下它会给我一个错误,因此如果我更新到包含它的版本,它会告诉我:)我觉得很有趣,这么简单的事情很难在React中实现。这是SVG作为一个巨大而奇怪的野兽的一个不幸的副作用。我们添加了很多标签,因为人们需要它们,但完全支持它们实际上是相当烦人的。我们希望在未来朝着更好的模型前进——我们知道SVG在前进中绝对是重要的!