我正在使用React-Admin,并有一个SimpleForm,我想在任何表单字段更改时触发一些通用操作,包括ReferenceInput选择字段。
我正在从React-Admin版本2.9升级到4.x。在以前的版本中,我在SimpleForm上有一个 onChange 控件,当任何表单字段被更改时都会触发它,包括ReferenceInput字段。在新版本中,更改ReferenceInput下拉列表选项 * 不再 * 触发onChange事件。
为什么?有什么办法让它重新工作吗?
const doSomething = () => {
// something
};
const ItemCreate = ({ dataProvider, ...props }) => (
<>
<Create title="Create Class" {...props}>
<SimpleForm onChange={doSomething}>
<TextInput source="name" label="Name"/>
<!-- no longer triggers the onChange event (doSomething) -->
<ReferenceInput label="Item" source="item" reference="items">
<SelectInput optionText={(choice) => `${choice.itemName}`} />
</ReferenceInput>
</SimpleForm>
</Create>
</>
2条答案
按热度按时间cnjp1d6j1#
在窗体内的某个位置,您可以调用:
https://react-hook-form.com/api/useformcontext
https://react-hook-form.com/api/useform/watch
qnakjoqk2#
在
SimpleForm
中,可以使用validate属性代替onChange。请阅读文档中的Form validation部分,这对您也有帮助。