reactjs - Skickar refs i React Native med TypeScript: (egenskap) React.MutableRefObject<null>.current: null Objektet kan möjligen vara 'null'.ts(2531)
Jag har flera fält på ett React Native-formulär och jag skulle vilja att fokus hoppar från ett till nästa varje gång användaren bekräftar fältet med det virtuella tangentbordet.
Jag kom på något liknande:
<NamedTextInput
name={'email'}
ref={emailRef}
...
onSubmitEditing={() => passwordRef.current.focus()}
/>
<NamedTextInput
name={'password'}
ref={passwordRef}
...
/>
För närvarande får jag ett TypeScript-fel:
(property) React.MutableRefObject<null>.current: null
Object is possibly 'null'.ts(2531)
Jag försökte lägga till ! och ?-tecken men det slutade med:
Property 'focus' does not exist on type 'never'.ts(2339)
Någon idé för att lösa detta?
Tack
Svar #1
Okej, jag fixade den här. Jag glömde typen i useRef-deklarationen:
const passwordRef = useRef<TextInput>(null)
Då kan jag lägga till ett !-tecken eller kontrollera existensen av den aktuella referensen utan att få felet "never":
onSubmitEditing={() => (passwordRef.current && passwordRef.current.focus())}
