React-admin - Cannot update a component (`xxx`) while rendering a different component (`SelectInput`)

1.2k views Asked by At

React-admin 3.8.4

I'm rendering some form fields conditionally, and these fields have some validations. Because of this, I'm receiving this error below:

Warning: Cannot update a component (nameOfTheComponent) while rendering a different component
(SelectInput). To locate the bad setState() call inside SelectInput, follow the stack trace
as described in...

I already have read some explanation about the problem and I've discovered that react-final-form calls a setState() when registering those fields and this seems to be the issue.

I also saw that there is a fix into FileConfig called silent that solves this problem React final form silent

But I don't know if I'm using wrong, because the warning remains showing up.

I'm trying to do something like this:

const OfferVariation = ({ formData, ...rest }) => {
  const form = useForm();

  useEffect(() => {
    return () => {
      const initialState = {}
      let inConstructor = true
      const fieldName = "internalOffer.type"

      form.registerField(fieldName, fieldState => {
        if (inConstructor) {
          initialState[fieldName] = fieldState
        } else {
          this.setState({ [fieldName]: fieldState })
        }
      }, { silent: true })
    }
  }, [])

    if (flowType === "Interna") {
      return (
          <SelectInput
            source="internalOffer.type"
            label="Tipo da Oferta"
            choices={offerTypes}
            validate={validateArrayNotEmpty}
            {...rest}
          />
      )
    } else if (flowType === "Externa") {
      return (
        <TextInput
          label="Url Externa"
          source="externalOffer.externalURL"
          {...rest}
        />
      )
    }
  }
};

export default OfferVariation;

Does anyone know how to fix it and could help me?

0

There are 0 answers