javascript React-Admin参考输入不再触发onChange

wi3ka0sx  于 2023-01-04  发布在  Java
关注(0)|答案(2)|浏览(119)

我正在使用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>
  </>
cnjp1d6j

cnjp1d6j1#

在窗体内的某个位置,您可以调用:

import { useFormContext } from 'react-hook-form'
...
const { watch } = useFormContext()
watch((data, { name, type }) => console.log(data, name, type))

https://react-hook-form.com/api/useformcontext
https://react-hook-form.com/api/useform/watch

qnakjoqk

qnakjoqk2#

SimpleForm中,可以使用validate属性代替onChange。
请阅读文档中的Form validation部分,这对您也有帮助。

相关问题