В React Native для того чтобы placeholder сохранялся при вводе, можно воспользоваться состоянием (state) компонента и обработчиком onChangeText для отслеживания изменений в текстовом поле.
Прежде чем начать, убедитесь, что у вас установлена библиотека React Native. Затем создайте новый компонент или откройте существующий. Ниже приведен пример кода для этой задачи:
import React, { useState } from 'react'; import { View, TextInput } from 'react-native'; const App = () => { const [inputText, setInputText] = useState(''); const handleChangeText = (text) => { setInputText(text); }; return ( <View> <TextInput placeholder="Введите текст" value={inputText} onChangeText={handleChangeText} /> </View> ); }; export default App;
В этом примере мы импортируем необходимые компоненты из библиотеки React Native, а также функцию useState из пакета 'react'. Затем мы создаем функциональный компонент 'App', который содержит переменную состояния inputText с помощью useState. Значение inputText и функция для его обновления setInputText находятся внутри массива деструктуризации [ ].
Далее, мы создаем обработчик handleChangeText, который будет вызываться при изменении текста в поле ввода. Он принимает в качестве аргумента новый текст и обновляет состояние inputText с помощью функции setInputText.
Возвращаясь к методу render, мы создаем дочерний компонент TextInput и передаем ему свойства placeholder, value и onChangeText.
- Свойство placeholder устанавливает текст, отображаемый в поле ввода до того, как пользователь начнет вводить.
- Свойство value устанавливает текущее значение поля ввода, которое хранится в переменной состояния inputText.
- onChangeText принимает функцию обратного вызова, которая будет вызываться при каждом обновлении текста в поле ввода. Функция handleChangeText привязывается к этому свойству, чтобы обновлять состояние inputText при изменении текста.
Таким образом, при вводе текста в поле ввода, значение сохраняется в переменной состояния и отображается в поле, а placeholder остается видимым до тех пор, пока пользователь не начнет его перезаписывать.