我正在处理一个动态表单,我希望创建一个<Form>
包装器组件。如果我的所有表单字段(反应组件)都有一个名为getValue()
的函数,它返回了该组件的值。然后我可以在1次迭代中获取所有动态值。
for(let i = 0; i < this.props.children.length; i++){
result.push(this.props.children[i].getValue());
}
我面临的问题是。由于某种原因,没有引用子对象上的组件函数。因此getValue
未定义。
这是为什么?有没有办法能够动态迭代组件并引用与ref's
相同的属性/函数?
我是否被迫使用refs进行迭代?
jsx概念验证:
return (
<Form ref="form">
<AdminSeo
home={true}
disableRedirect={true}
disableCanonical={true}
/>
</Form>
);
这会导致this.props.children等于[Object]
;
AdminSEO有一个名为getValue();
的属性 getValue = () => {
return {...this.state};
}