当前位置: 首页 > 面试题库 >

React.render替换容器而不是插入

杜鸿彩
2023-03-14
问题内容

我正在逐步用React替换一些Backbone视图。

我的React视图:

<div id="reactViewContent">Rendered By React</div>

我需要在其他html元素下方呈现React视图而不替换它们。

<div id="somestuff">
  <div id="anotherView">Other stuff not to delete</div>
  <div id="placeholderForReactView"></div>
</div>

我希望我的方法可以替换占位符,而不是插入占位符,以便:

React.render(React.createElement(MyTestReactView), document.getElementById('placeholderForReactView'));

可能导致:

<div id="somestuff">
  <div>Other stuff not to delete</div>
  <div id="reactViewContent">Rendered By React</div>
</div>

代替:

<div id="somestuff">
  <div>Other stuff not to delete</div>
  <div id="placeholderForReactView">
    <div id="reactViewContent">Rendered By React</div>
  </div>
</div>

没有重复出现在Jquery上,有没有正确的方法呢?


问题答案:

您不需要jQuery来解决此问题。

您只需要渲染到临时DIV中并提取内容并替换现有元素即可。我添加了,id="destination"以便可以轻松地从临时元素中检索该元素。

var Hello = React.createClass({
    render: function() {
        return <div id="destination">Hello {this.props.name}</div>;
    }
});

// temporary render target
var temp = document.createElement("div");
// render
React.render(<Hello name="World" />, temp);
// grab the container
var container = document.getElementById("container");
// and replace the child
container.replaceChild(temp.querySelector("#destination"), document.getElementById("destination"));


 类似资料:
  • 问题内容: 我使用了下面的jQuery 示例 ,它的工作原理就像一个魅力。但是,它会附加结果。我需要更改什么以替换结果而不是附加结果? 问题答案: 您可以在追加之前清空元素 或使用方法

  • 问题内容: 快速的问题,我知道我们可以 改变 一个内容 通过使用: 现在,有没有一种方法可以将内容 添加 到div而不是替换它???这样我就可以 (当然使用类似的东西) 问题答案:

  • 问题内容: 我有以下代码: 我想用新内容替换文件中的旧内容。但是,当我执行代码时,将附加文件“ test.xml”,即,我的旧内容被新的“替换”内容所取代。为了删除旧内容而只保留新内容,我该怎么办? 问题答案: 您需要先写入文件的开头,然后再使用(如果要进行就地替换): 另一种方法是读取文件,然后使用再次打开它: 无论是也将改变inode的文件的数量(我测试过两次,一次是与Ubuntu 12.04

  • 在编辑JavaScript时,我想在代码中选择一个短语,并用大括号将其包装起来。 例如,在Sublime Text中,默认行为是当我点击键并选中时,它会被转换为。但在Webstorm中,它会被转换为。 我如何改变这种行为?

  • 问题内容: 只是想知道是否有可能以某种方式使CSS属性插入html代码而不是在上插入字符串或类似这样的元素: 这将非常方便…可以通过Javascript完成,但是使用CSS确实可以使生活更轻松:) 问题答案: 不幸的是,这是不可能的。根据规格: 生成的内容不会更改文档树。特别是,它不会反馈到文档语言处理器(例如,用于重新解析)。 换句话说,对于字符串值,这意味着始终按字面意义对待该值。无论使用哪种

  • 我正在浏览使用替换的Jaxb继承的Blaise's Bloghttp://blog.bdoughan.com/2010/11/jaxb-and-inheritance-using-substitution.html。 我想实现相同的功能,但不想实现根元素。我将这种类型的XML视为输出。 以下是配置。Java语言 Customer.java 住址Java语言 电话号码。Java语言 Demo.jav