typescript - Ako zaostriť TextInput po stlačení tlačidla v React Native


Mám komponent TextInput, ktorý je upraviteľný iba pri jeho prvom načítaní. Mal by sa stať upraviteľným a automaticky zaostreným, keď je stlačené tlačidlo. Ak som to správne pochopil, vlastnosť autoFocus funguje iba pri prvom načítaní. Existuje nejaký spôsob, ako to implementovať pri zmene stavu?

import { FunctionComponent } from 'react';
import { View, TextInput, TextInputProps } from 'react-native';


interface InputTextBoxProps {
  editingState: boolean;
}

type InputProps = TextInputProps & InputTextBoxProps;

const InputTextBox: FunctionComponent<InputProps> = ({editingState, ...props}) => {
  return (
    <View>
      <TextInput
        {...props}
        multiline={true} 
        style={styles.textStyle}
        editable={editingState}
        autoFocus={editingState}
      >
      </TextInput>
    </View>
  );
};

Odpoveď č. 1

const refInput = React.useRef(null);
 ...
<TextInput
  {...props}
  ref={refInput}
  multiline={true} 
  style={styles.textStyle}
  editable={editingState}>
</TextInput>

funkcia pri kliknutí na tlačidlo

refInput.current.focus()

Súvisiace články