как программно очистить TextInput с помощью useRef - PullRequest
0 голосов
/ 09 января 2020

Я пытаюсь автоматически очистить TextInput после отправки формы, используя useRef.

const inputRef = useRef()

Это показывает список свойств. Тем не менее, следующее не работает:

    const clearInput = () => {
        inputRef.current.value = ""
    }

Это показывает, что value не существует.

В настоящее время я использую response-native-google-place-autocomplete :

<GooglePlacesAutocomplete
    ref={inputRef}
    placeholder='Search'
    minLength={1}
    autoFocus={false}
    returnKeyType={'search'} 
    keyboardAppearance={'light'} /keyboardAppearance https://facebook.github.io/react-native/docs/textinput.html#keyboardappearance
    listViewDisplayed={focus}   
    fetchDetails={true}
    textContentType={'fullStreetAddress'}
    autoCapitalize={'words'}
    selectionColor={'red'}
    clearButtonMode={'always'}
    // other properties
/>

1 Ответ

1 голос
/ 09 января 2020

Ваш ref inputRef относится не к вводу текста, а к компоненту GooglePlacesAutocomplete. Ввод текста внутри этого компонента - это то, что вам нужно для ссылки.

Если вы посмотрите на код , вы увидите, что его ссылка определена как "textInput" (строка 717), и что она выбирается компонентом автозаполнения с помощью this.refs.textInput (строка 166)

Учитывая это, вы должны иметь возможность доступа к текстовому вводу ref через компонент автозаполнения, например:

inputRef.current.refs.textInput

...