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} />
  

Relaterte artikler