// Calls the children callback numTimes to produce a repeated component
function Repeat(props) {
let items = [];
for (let i = 0; i < props.numTimes; i++) {
items.push(props.children(i));
}
return <div>{items}</div>;
}
function ListOfTenThings() {
return (
<Repeat numTimes={10}>
{(index) => <div key={index}>This is item {index} in the list</div>}
</Repeat>
);
}
2条答案
按热度按时间wn9m85ua1#
我在我的应用程序中使用此模式,请查看:
然后,我可以像这样使用它,在formik的方式:
我不知道这是怎么叫的,但我想它的名字是'渲染 prop 模式'
u4dcyp6a2#
JSX文档将这些函数作为子函数调用:
作为子项运行
通常,JSX中插入的JavaScript表达式将计算为字符串、React元素或这些元素的列表。但是,
props.children
的工作原理与其他任何prop一样,它可以传递任何类型的数据,而不仅仅是React知道如何呈现的类型。例如,如果您有一个自定义组件,您可以让它接受props.children
这样的回调:传递给自定义组件的子元素可以是任何内容,只要该组件在呈现之前将它们转换为React可以理解的内容。这种用法并不常见,但如果您想扩展JSX的功能,它是有效的。
x一个一个一个一个x一个一个二个x