react 渲染子组件求解?
antd 文档地址 https://ant.design/components...
我用方式一,能实现
这个功能, props接受的是value 和onchange
我用方式二就不能接受到props的onchange, value。只能接受到父级的props。
两个props不一样
function Text (props) {
return <input {...props} />
}
function Parent (props) {
// 方式一
const Child = props.child
retrun <Form.Item>
<Child {...props} />
</Form.Item>
// 方式二
return <Form.Item>
{props.child({...props})}
</Form.Item>
}
<Parent child={Text} />
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
ant-design所依赖的基础库是 rc-component,请查看对应rc-field-form源码 585行以及上面的468行
这里已经很清楚了,如果传入的是一个函数,则会进行调用之后,判断当返回值是一个 react.reactElement 才会进行props的包裹,否则不会进行任何props混入(cloneElement之类的处理)
如果按上述的例子来看,第二种方式 child中获取的当然是父组件的props,因为是函数传参,而它的返回值jsx部分则会被加入onchange,value
希望我的表述没有问题