gpt4 book ai didi

reactjs - 动态嵌套 React.js 组件

转载 作者:行者123 更新时间:2023-12-03 13:18:17 24 4
gpt4 key购买 nike

我想创建一个可以使用 React.js 呈现的灵活/动态 JSX 表单格式。此格式必须包含嵌套组。一个组可以包含其他组以及问题。

var Group = React.createClass({
render: function(){
return (
<fieldset></fieldset>
);
}
});

var Text = React.createClass({
render: function() {
return (
<label>
<input type="text"/>
</label>
);
}
});

React.render(
<form>
<Group>
<Text/>
</Group>
<Text/>
</form>,
document.getElementById('container')
);

我想制作:

<form>
<fieldset>
<label>
<input type="text">
</label>
</fieldset>
<label>
<input type="text">
</label>
</form>

但是<fieldset>元素未填充。输出仅包含一个空 <fieldset> .

我应该如何嵌套react.js组件,并仍然保持在根和嵌套级别重用问题和组组件的灵 active ?

最佳答案

当您将 React 元素嵌套到 JSX 中的其他 React 元素中时,父元素将传递 children包含子元素的 prop。请参阅Type of the Children props .

另一种看待它的方式是<Group><div></div></Group> JSX 相当于 React.createElement(Group, null, React.createElement('div', null)) ,这又相当于 React.createElement(Group, {children: React.createElement('div', null)}) .

因此,在您的情况下,您的组组件将如下所示:

var Group = React.createClass({
render: function(){
return (
<fieldset>{this.props.children}</fieldset>
);
}
});

请注意,children 属性是一个不透明的数据结构(它可能是单个元素或元素数组,具体取决于输入),因此如果您需要操作它,您应该使用 React.Children API。

关于reactjs - 动态嵌套 React.js 组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29020863/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com