是否可以用React替换DOM元素?

时间:2015-11-05 03:05:56

标签: javascript reactjs

我想使用React渲染<section>元素,但仅限于满足某些条件。

问题是我无法将<section>嵌套在<div>中,因此<body>以外的最高级别DOM元素为<section>

我的HTML:

<section id="my_element"></section>

我的反应:

ReactDOM.render(
  <div className="container">
    ...
  </div>,
  document.getElementById('my_element')
);

我知道使用Angular指令,您可以使用replace: true

将原始DOM元素替换为渲染元素
app.directive('myElement', function(){
  return {
    replace: true,
    ...
    }
  };
});

React中有类似的内容吗?

2 个答案:

答案 0 :(得分:3)

目前尚未实施: https://github.com/facebook/react/issues/1311

请按照此问题查看开发: https://github.com/facebook/react/issues/1711

StackOverflow问题有一个解决方法:
React.render replace container instead of inserting into
解决方法涉及创建临时div,然后替换节点。

答案 1 :(得分:0)

您可以使用某些案例来解决这个问题。我更喜欢这样做:

render(){
return [<div>test</div>, <div>test2</div>]
}

这是您的问题的答案:https://github.com/facebook/react/issues/2127