如何在使用redux格式按下下一个键盘按钮后如何使用useRef钩子来选择下一个TextInput

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在使用redux格式按下下一个键盘按钮后如何使用useRef钩子来选择下一个TextInput相关的知识,希望对你有一定的参考价值。

我知道我们可以使用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}
      />

以上是关于如何在使用redux格式按下下一个键盘按钮后如何使用useRef钩子来选择下一个TextInput的主要内容,如果未能解决你的问题,请参考以下文章

在键盘中按下下一个按钮时移动到最近的edittext元素

按下按钮后如何使“提交”表单从 Ajax 工作

使取消按钮下键盘

React Native:按下“下一个”键盘按钮后如何选择下一个TextInput?

React Native:按下“下一个”键盘按钮后如何选择下一个TextInput?

即使在sencha中按下按钮后,如何使按钮的图像可见