2 votes

React TypeScript : Types corrects pour onChange

Quels sont les types corrects de target: { value: any, name: any } ? L'erreur que j'obtiens est la suivante Duplicate identifier 'any'. J'obtiens également l'erreur suivante Binding element 'any' implicitly has an 'any' type. Et pourquoi value donne l'erreur "Cannot find name 'value' ?".

J'ai un bac à sable ici

const [state, setState] = useState({
    fullName: '',
});

const { fullName } = state;

const onChange = ({ target: { value: any, name: any } }) => {
    setState((prev) => ({
        ...prev,
        [name] : value, // <= 'Cannot find name 'value'
    }));
};

...

<input
  type='text'
  placeholder='Full name'
  name='fullName'
  value={fullName}
  onChange={onChange}
/>

3voto

svltmccc Points 908

event de onChange devrait être ChangeEvent<HTMLInputElement>

Vous devez donc le faire :

const [fullName, setFullName] = useState('');

...

const onChange = (event: ChangeEvent<HTMLInputElement>) => {
    setFullName(event.currentTarget.value);
};

...

<input
  type='text'
  placeholder='Full name'
  name='fullName'
  value={fullName}
  onChange={onChange}
/>

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X