【React Native × Expo】TextInput에서 Ref를 사용해 다른 컴퍼넌트로부터 메소드를 호출한다
6597 단어 reactnative
Ref를 사용하면 TextInput 메서드를 다른 구성 요소에서 호출할 수 있습니다.
※Ref에 대해서는 이 공식 문서 를 참조해 주시면 좋겠습니다.
아래에서 구현하고 싶습니다.
// 必要最低限のimport
import React, {useState} from 'react';
import {StyleSheet, Button, View, TextInput} from 'react-native';
// 関数コンポーネントを定義
export default function SampleScreen() {
// 入力値はstateで管理
const [inputMsg, setInputMsg] = useState('');
let textInput; // returnの外側で定義
return (
<View style={styles.container}>
<TextInput
ref={(input) => textInput = input} // 上で定義したtextInputに代入
style={styles.inputs}
placeholder='ここに文字を入力してください'
value={inputMsg}
onChangeText={(text) => {
setInputMsg(text);
}}
/>
<Button
title='TextInputの値をクリアする'
onPress={() => {
textInput.clear(); // refを使って、メソッドをよびだす
}}
/>
<Button
title='TextInputにフォーカスを当てる'
onPress={() => {
textInput.focus();
}}
/>
<Button
title='TextInputのフォーカスを外す'
onPress={() => {
textInput.blur();
}}
/>
</View>
);
}
const styles = StyleSheet.create({
container: {
flex: 1,
},
inputs: {
margin: 50,
padding: 5,
borderWidth: 1,
},
});
↓↓실장한 결과가 이쪽↓↓
이런 식으로 함수 컴포넌트의 어느 곳에서나 TextInput의 값을 지우거나 커서를 놓을 수 있습니다.
응용해, 다른 컴퍼넌트에서도 사용해 주시면 좋겠습니다.
참고문헌
Reference
이 문제에 관하여(【React Native × Expo】TextInput에서 Ref를 사용해 다른 컴퍼넌트로부터 메소드를 호출한다), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/choco_p/items/eefa47299607fb3550af텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)