useFieldState.tsx 607 B

123456789101112131415161718
  1. import React from 'react';
  2. import useFormState from './useFormState';
  3. import * as ObjectUtil from '@douyinfe/semi-foundation/utils/object';
  4. import { FormState } from '../interface';
  5. const buildFieldState = (formState: FormState, field: string) => ({
  6. value: ObjectUtil.get(formState.values, field),
  7. error: ObjectUtil.get(formState.errors, field),
  8. touched: ObjectUtil.get(formState.touched, field),
  9. });
  10. function useFieldState(field: string) {
  11. const formState = useFormState();
  12. const fieldState = buildFieldState(formState, field);
  13. return fieldState;
  14. }
  15. export default useFieldState;