У меня есть поле TextInput с указанным заполнителем.При загрузке текст заполнителя должен отображаться как fontWeight:"normal"
, а когда пользователь вводит значение в текстовое поле - буква попадает в fontWeight:"bold"
, но когда текстовое поле снова пусто - заполнитель должен вернуться к fontWeight:"normal"
.В настоящее время, несмотря на изменение и обновление состояния, заполнитель по-прежнему занимает "fontWeight:bold"
, как только пользователь вводит и удаляет текст из поля TextInput.
Я пытался использовать placeholderStyle, но это не для моего сценария, я нехочу изменить стиль, только вес шрифта.
<TextInput
style={
!searchText
? [styles.autoCompleteInputStyle, styles.placeholderText]
: [styles.autoCompleteInputStyle, styles.searchedText]
}
underlineColorAndroid="transparent"
placeholder="Search item"
placeholderTextColor="#505050"
autocorrect={false}
value={searchText}
onChangeText={searchTextValue => this.onChangeText(searchTextValue)}
clearButtonMode="while-editing"
returnKeyType="search"
/>
Стиль для autocompleteTextInput
autoCompleteInputStyle: {
flexDirection: "row",
height: 40,
borderStyle: "solid",
borderWidth: 1,
borderColor: "#cccccc",
fontSize: 18,
flex: 1,
justifyContent: "center",
marginRight: 14,
marginBottom: 20,
paddingLeft: 40,
color: "#000000",
borderRadius: 2,
lineHeight: 21,
fontFamily: fontStyleFlightCard.fontFamily
},
searchedText: {
fontWeight: "bold"
},
placeholderText: {
fontWeight: "normal"
},
Я предполагаю, что заполнитель должен быть в обычном fontWeight, а когда пользователь вводит текст, он должен бытьжирным шрифтом.Всякий раз, когда пользователь вводит и удаляет текст из TextInput, текст заполнителя меняется на обычный fontWeight.