Как установить значение по умолчанию в форме реакции-ловушки в реакции-нативе, используя пользовательский метод регистра - PullRequest
0 голосов
/ 25 апреля 2020

Я тестировал форму ответа и обращался к документации здесь . Пожалуйста, обратите внимание, что этот вопрос конкретно относится к методу Пользовательский регистр ручного регистра.

Передача defaultValues в useForm() не работает, так как defaultValues не заполняется автоматически с зарегистрированным вручную вводом, как указано в документации .

В таком случае, есть ли способ установить значение по умолчанию, используя этот метод?

export default function App() {
  const { register, setValue, errors } = useForm()

  return (
    <View>
      <Text>First name</Text>
      <TextInput
        ref={register({ name: 'firstName'}, { required: true })}
        onChangeText={text => setValue('firstName', text, true)}
      />
      {errors.firstName && <Text>This is required.</Text>}
    </View>
  )
}

1 Ответ

1 голос
/ 25 апреля 2020

для собственного использования реагирует Контроллер из формы реагирующего хука

пример

import React from "react";
import { Text, View, TextInput, Button, Alert } from "react-native";
import { useForm, Controller } from "react-hook-form";
export default function App() {
  const { control, handleSubmit, errors } = useForm();
  const onSubmit = data => Alert.alert(
    "Form Data",
    JSON.stringify(data),
  );

  return (
    <View>
      <Text>First name</Text>
      <Controller
        as={TextInput}
        control={control}
        name="firstName"
        onChange={args => args[0].nativeEvent.text}
        rules={{ required: true }}
        defaultValue=""
      />
      {errors.firstName && <Text>This is required.</Text>}

      <Text>Last name</Text>
      <Controller
        as={TextInput}
        control={control}
        name="lastName"
        onChange={args => args[0].nativeEvent.text}
        defaultValue=""
      />


      <Button title="Submit" onPress={handleSubmit(onSubmit)} />
    </View>
  );
}

для получения дополнительной информации см. Документацию здесь

...