方式一
子组件 watch 某属性的变动。
复杂点的情况,父组件要拿子组件函数调用的返回值。父组件要额外传个回调,在函数调用后,调用那回调。
流程图 todo
代码todo
方式二
父组件传入一个对象做为调用子组件方法的代理对象。子组件和该对象产生关联关系。类似 ant design 的 Form 的写法。
import { Form } from 'antd'const [form] = Form.useForm();// 触发验证form.validateFields()<Form form={form}>...</Form>
子组件里可能的实现是这样的:
({form}) => {const validateFields = ...useEffect(() => {// 绑定关联关系form.init(validateFields)}, [form])}
form 里面可能这么写
class Form {init(validateFields) {this.doValidateFields = validateFields}validateFields () {this.doValidateFields?.()}}
