父组件中的访问形式(反应形式)状态



我如何在父组件中访问状态

这是我在做的事情(只是一个简短的代码,请忽略语法(

class Parent {
   <listComponent
     onSelect: handler
   >
  handler() {
    // Do this only if the already opened ChildComp in not dirty
     <ChildComp>
  }
}
// Uses react-final-form
class ChildComp {
   <form
      onSubmit: handleSubmit
      render: renderForm
    >
     renderForm ({dirty}){
      // Assigning to a class variable and prompting for unsaved changes which I am able to do
       this.isFormDirty = dirty
      return(
         <InputField>
     );
   }
   </form>
}

现在的问题是,如果孩子在OnSelect Handler((中肮脏((,我无法通知父母不要渲染孩子。我不能在渲染方法中进行setState,至少我可以使用componentDidupdate通知预先感谢

从问题#551复制:


另一种可能性是,最近有一个API更改,使您可以将自己的表单实例提供给<Form>,因此类似的事情可以起作用:

import { createForm } from 'final-form'
function TestForm() {
  const formRef = React.useRef(createForm({
    onSubmit: myOnSubmit
  })
  return (
    <div>
      <Form form={formRef.current}>
        {({ handleSubmit, form }) => (
          <form onSubmit={handleSubmit}> ... fields ... </form>
        )}
      </Form>
      <button onClick={() => formRef.current.reset()}>Reset</button>
    </div>
  )
}

相关内容

  • 没有找到相关文章