React-Admin 中 parent 传递的问题访问属性

Issue accessing attribute passed by parent in React-Admin

我是 React-Admin 的新手。我真的很难掌握 parent/children 关系的基本特征以及如何与可以在两者之间传递的 props/parameters/attributes 进行交互。

也就是说,我试图了解如何 read/access 属性 parent 从 child 内部发送到其 child 的属性。这看起来很简单,但我不知道该怎么做。

为了进一步解释我的问题,我将举个例子:

<ReferenceInput
   source="id"
   reference="anotherPageList"
>
   <SelectInput
     optionText="name"
     validate={required()}
     initialValue={MyCustomFunction(this.choices)}
   />
</ReferenceInput>

它在 ReferenceInput 组件的 React-admin 文档中说:“此组件获取参考资源中的可能值(使用 dataProvider.getList()),然后将渲染委托给子组件,以它将可能的选择作为选择属性传递。"

所以我希望我可以在 SelectInput 的 MyCustomFunction 中使用属性“choices”,因为它是从 parent 传递过来的。但我无法访问此属性“选择”。

我知道在我的例子中,SelectInput 仍然使用这个属性来填充它自己的“选择”属性,这工作正常,但我想了解我自己如何访问它。

通过在两者之间添加自定义组件,我能够成功地与从 ReferenceInput 发送到 SelectInput 的道具进行交互:

const CustomComponent = (props) => {
    return (
      <SelectInput {...props}
          optionText="name"
          validate={required()}
          initialValue={MyCustomFunction(props.choices)}
      />
    );
};

<ReferenceInput
   source="id"
   reference="anotherPageList"
>
   <CustomComponent />
</ReferenceInput>