我正在尝试在我的React项目中危险地使用SetInnerHTML。我在桌子上使用它。我也想在td内放置一些。

执行此操作时未显示表格行

<td dangerouslySetInnerHTML={{ __html: item.words}}>
<div className={commentClassName}>
    <div className="comments-item">
        <div className="comments-item-dp">
        </div>
        <div className="comments-item-text">
            <span>APURV</span>
            Delete the marked words from this part
        </div>
    </div>
    <div className="comments-item">
        <div className="comments-item-dp">
        </div>
        <div className="comments-item-text">
            <span>APURV</span>
            Mute this when aired at prime time.
        </div>
    </div>
    <div className="comments-item">
        <div className="comments-item-dp">
        </div>
        <div className="comments-item-text">
            <span>ROHAN</span>
            <textarea className="form-control" placeholder="Add comment ..."></textarea>
        </div>
    </div>
</div>




但是当我这样做时它起作用

<td dangerouslySetInnerHTML={{ __html: item.words}}></td>


我想在里面放那个div。我该如何运作?

最佳答案

如果设置TD innerhtml,则将替换其所有内容。可以说,如果其中有一个div,它将被新内容替换。

解决此问题的简单方法是将div应用于td中的动态内容:

<td>
<div dangerouslySetInnerHTML={{ __html: item.words}}></div>
<div className={commentClassName}>
    <div className="comments-item">
        <div className="comments-item-dp">
        </div>
        <div className="comments-item-text">
            <span>APURV</span>
            Delete the marked words from this part
        </div>
    </div>
    <div className="comments-item">
        <div className="comments-item-dp">
        </div>
        <div className="comments-item-text">
            <span>APURV</span>
            Mute this when aired at prime time.
        </div>
    </div>
    <div className="comments-item">
        <div className="comments-item-dp">
        </div>
        <div className="comments-item-text">
            <span>ROHAN</span>
            <textarea className="form-control" placeholder="Add comment ..."></textarea>
        </div>
    </div>
</div>
</td>


这样,第二个div将被管理。

08-18 13:52