我知道我们可以使用react类方法轻松完成此操作。因为我们有this.ref。但我不确定如何使用功能组件中的useRef挂钩执行此操作。
使用写在here上的技巧”>
这就是我试图这样做的方式。
... const inputEl1 = useRef(null); const inputEl2 = useRef(null); return ( <Field name="first_name" component={MyTextInput} placeholder="First name" ref={inputEl1} refField={inputEl1} onEnter={() => { inputEl2.current.focus(); }} /> /> <Field name="last_name" placeholder="Last name" component={MyTextInput} ref={inputEl2} refField={inputEl2} /> ) ...
所以我需要将ref从字段传递到MyTextInput,并在nextKeyPress上我要关注第二个输入组件,即inputEl2
//我的文字输入
...
render() {
const {
input: { value, onChange, onBlur },
meta: { touched, error },
keyboardType,
placeholder,
secureTextEntry,
editable,
selectTextOnFocus,
style,
selectable,
customValue,
underlineColorAndroid,
autoFocus,
maxLength,
returnKeyType,
onEnter,
refField,
} = this.props;
const { passwordVisibility, undelineColor } = this.state;
return (
<View style={{ marginVertical: 8 }}>
<TextInput
style={[{
height: 50,
paddingLeft: 20,
color: Colors.SECONDARY_COMMON,
}, style]}
onBlur={val => onBlur(val)}
keyboardType={keyboardType}
underlineColorAndroid={undelineColor}
placeholder={placeholder}
returnKeyType={returnKeyType || 'go'}
value={customValue || value.toString()}
onChangeText={onChange}
maxLength={maxLength}
onSubmitEditing={onEnter}
ref={refField}
/>
)
}
我知道我们可以使用react类方法轻松完成此操作。因为我们有this.ref。但是我不确定如何使用功能组件中的useRef挂钩来执行此操作。使用这里写的技巧这就是我的样子...
[如果孩子需要使用像<TextInput ref={refField}...
中的ref这样的道具,则该道具需要是ref(不是字符串):
const inputEl2 = useRef(null);
<TextInput
name="first_name"
placeholder="First name"
onSubmitEditing={() => inputEl2.current.focus()}
/>
<TextInput
name="last_name"
placeholder="Last name"
ref={inputEl2}
/>