TypeScript-typer for TextInputs onChange-hendelse i React Native
Jeg har et React Native Expo-prosjekt som bruker TypeScript. Hvordan kan jeg legge til typer for onChange-hendelsen for TextInput?
<TextInput
keyboardType="numeric"
value={`${value}`}
onChange={(e: React.FormEvent<HTMLInputElement>): void => {
set({ value: e.target.value });
}}
/>
Jeg får denne feilen:
TS2339: Egenskapen "value" finnes ikke på typen "EventTarget"
Svar #1
Typen for hendelsen er NativeSyntheticEvent<TextInputChangeEventData>
Du kan importere begge disse fra "react-native".
Den har en egenskap som heter nativeEvent, og der er teksten.
import { View, TextInput, NativeSyntheticEvent, TextInputChangeEventData } from "react-native";
...
const onChange = (e: NativeSyntheticEvent<TextInputChangeEventData>): void => {
const value = e.nativeEvent.text;
doStuff(value);
}
...
<TextInput onChange={onChange} />
