将usecallback函数传递给formik innerref以侦听状态更改?

s8vozzvw  于 2021-09-23  发布在  Java
关注(0)|答案(0)|浏览(182)

我想知道是否有人有过从 useCallback 到福米克的 innerRef 道具我没怎么用过这个钩子,所以我还在努力更好地理解它。
目前,我有以下内容,它用于从外部触发formik提交 <Formik> 组件,但我正在努力更新 isSavingDisabled 基于formik的 isValid 状态,因为react REF不会触发 useEffect 当指定为依赖项时(如react文档中所述)。

const MyModal = () => {

  const [isSavingDisabled, setSavingDisabled] = useState( false )
  const formikRef = useRef()

  const doSave = () => {
    if ( formikRef.current ) {
      formikRef.current.handleSubmit()
    }
  }

  return (
    <Modal>
      <ModalHeader>My Modal Header</ModalHeader>
      <ModalBody>
        <Formik innerRef={formikRef} {...formikProps}>
          { /* Form body */ }
        </Formik>
      </ModalBody>
      <ModalFooter>
        <Button disabled={isSavingDisabled} onClick={doSave}>
          Save
        </Button>
      </ModalFooter>
    </Modal>
  )
}

我需要:1)保留对 handleSubmit 所以我可以在外面叫它 <Formik> 组件,但还要2)侦听对 isValid 属性,以便我可以随时禁用“保存”按钮 isValid === false .
我看到了 useCallback ,可能与 useState ,可以用来代替 useRef ,但我遇到了一个渲染循环。谁能给我指出正确的方向吗?提前谢谢!

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题