Ввод текста на бумаге React Native — настройка цвета этикетки в исходном состоянии

#react-native #label #textinput #react-native-paper

#react-native #этикетка #textinput #react-native-paper

Вопрос:

Я хочу настроить выделенный цвет метки ввода текста на бумаге react native в исходном состоянии (не в фокусе). Это мой компонент OutlinedInput:

 import * as React from 'react';
import { TextInput } from 'react-native-paper';

const OutlinedInput = (props) => {
  return (
    <TextInput
      mode='outlined'
      label={props.label}
      placeholder={props.placeholder}
      placeholderTextColor='white'
      secureTextEntry={props.secureTextEntry}
      multiline={props.multiline}
      keyboardType={props.keyboardType}
      value={props.value}
      onChangeText={(value) => props.onChangeText(value)}
      style={props.style}
      theme={props.theme}
    />
  );
};

export default OutlinedInput;
  

В моем компоненте Register я создал внутри него компонент OutlinedInput:

 <View style={{ justifyContent: 'center', alignItems: 'center' }}>
  <OutlinedInput
    label={'User Name'}
    value={userName}
    onChangeText={(userName) => setUserName(userName)}
    style={{ color: 'white', backgroundColor: 'rgb(35,39,42)',
            borderRadius: 5, width: '75%', height: '5%' 
    }}
    theme={{ colors: { text: 'white', primary: 'rgb(33, 151, 186)' } }}
  />
</View>
  

Я добавил эту строку в верхней части компонента Register:

 const [userName, setUserName] = useState('');
  

Скриншот моей программы, если я не нажимаю на ввод:

введите описание изображения здесь

Это скриншот для нажатия на ввод:

введите описание изображения здесь

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

Я попытался решить эту проблему с помощью заполнителя. Я добавил реквизиты заполнителя к OutlinedInput и изменил цвет заполнителя на белый, но в этом случае заполнитель не стал выделенным. Когда я пробовал что-либо с заполнителем, оно не выделялось.

Как я могу настроить цвет метки, чтобы она отображалась как белая после открытия программы?

Ответ №1:

Для настройки цвета метки в React Native Paper v5 необходимо обновить этот реквизит:

 theme={{
    colors: {
         onSurfaceVariant: 'white'
    }
}}
  

Я не понимаю, почему они сделали это таким несерьезным и недоступным (этого даже нет в их документах).

Ответ №2:

Вам необходимо заменить TextInput свойство:

placeholderTextColor='white'

с помощью:

 theme={{
    colors: {
        placeholder: 'white'
    }
}}
  

Комментарии:

1. Я изменил код, как вы сказали. Но ввод не выделен контуром. Заполнитель не перемещается вверх.

2. этот снипит не работает

Ответ №3:

Обновить :

Его «На поверхности: ‘белый'»