javascript - Typen 'void' kan inte tilldelas typen '((event: ChangeEvent) => void) React TypeScript'
Jag är nybörjare i React TypeScript, och jag har definierat några props i en .JS-fil som jag vill använda i en .tsx-fil. men jag får detta fel på en av mina TypeScript-rader:
<MyTextField style={{width:'60%'}} name='ActivationDate' type='date' defaultValue={values1.ActivationDate} onChange={handleChange('ActivationDate')}/>
Type 'void' is not assignable to type '((event: ChangeEvent<HTMLInputElement>) => void) | ((event: ChangeEvent<HTMLSelectElement>) => void) | ((event: ChangeEvent<HTMLTextAreaElement>) => void) | undefined'.
CodeSandbox innehåller både min JS-fil och TSX-fil: https://codesandbox.io/s/tsx-rj694
Vad verkar vara problemet och hur kan jag skriva detta korrekt?
Svar #1
Jag antar att du inte skickar händelseobjektet till handleChange-metoden.
Så här bör du ändra din onChange-händelsehanterare:
onChange={() => handleChange('ActivationDate')}
För din information, om du behöver få åtkomst till händelseobjektet i onChange-anropet, måste du uttryckligen ange rätt typer.
onChange={handleChange}
Och när du definierar funktionen,
const handleChange = (event: ChangeEvent<HTMLInputElement>) => {
// do the rest here
}
Svar #2
onChange={(e: React.ChangeEvent<HTMLInputElement>): void => handleChange(e.target.value)}
