Javascript ReactJS中的jquerywrap等价物
在ReactJS中是否有jQuery wrap的等价物 我试图用下面的元素包装Javascript ReactJS中的jquerywrap等价物,javascript,jquery,reactjs,Javascript,Jquery,Reactjs,在ReactJS中是否有jQuery wrap的等价物 我试图用下面的元素包装menuContents <ul className="nav nav-pills nav-stacked"></ul> 我正在寻找一个功能(如果有的话)像 menuContents.wrap(); 所以回报是 <ul className="nav nav-pills nav-stacked"> <li> One </li> &
menuContents
<ul className="nav nav-pills nav-stacked"></ul>
我正在寻找一个功能(如果有的话)像
menuContents.wrap(
);
所以回报是
<ul className="nav nav-pills nav-stacked">
<li>
One
</li>
<li>
Two
</li>
</ul>
-
一个
-
两个
据我所知,React中没有这样的东西,但您可以使用
以及如何使用它
let wrapper= document.createElement('div');
myWrap(myElement, wrapper);
React不是一组字符串粘合辅助工具,它在组件上运行,当然可以通过简单的组件或HOC模式来管理这个用例,从而使其更具可组合性 您可以创建简单的组件(甚至不用渲染道具)来包装/装饰具有“父”(
)结构和样式的项(子项),如下所示:
<UlComponent ulClasses="nav nav-pills nav-stacked" >
{menuContents}
</UlComponent>
使用HOC,您可以使用组合创建更复杂的组件(注入道具、全局状态、i18n)。您可以有几个级别的组件深度(虚拟DOM树很便宜)渲染到单个(或无)真实DOM元素,隐藏其所有复杂性/数据/依赖性不再(容易出错)手动搜索/操作DOM节点/属性/处理程序。@Esko,我同意,我会将其更改为
@Jayavel我现在正在这样做,不知道是否有内置的东西,所以我可以使用menuContents.wrap()代码>避免直接DOM操作-react可以在重新提交更新的组件时覆盖这些更改
function myWrap(element, wrapper) {
element.parentNode.insertBefore(wrapper, element);
wrapper.appendChild(element);
}
let wrapper= document.createElement('div');
myWrap(myElement, wrapper);
<UlComponent ulClasses="nav nav-pills nav-stacked" >
{menuContents}
</UlComponent>
const UlComponent = (props) => <ul className={props.ulClasses}>{props.children}</ul>