Я хочу добавить единицу к значению textInput:
Пытался использовать value = { this.state.totalWeight + " Kgs"}, но безрезультатно!
Также я попытался добавить " Kgs" в onSubmitEditing = { () => { this.refs.firstInput.refs.value = this.state.totalWeight + " Kgs" }, но опять же безрезультатно!
Любая идея?
Thanks in advance!



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


state = {
value: "",
unit: "Kgs"
}
render(){
return(
<View style = {{flexDirection: 'row', alignItems: 'center'}} >
<TextInput value = {this.state.value} onChangeText = {(value) => this.setState({value})} />
<View style = {{marginRight: 10}} >
<Text>{this.state.value === '' ? '' : this.state.unit}</Text>
</View>
</View>
);
}
Ах да! Позвольте мне обновить ответ. Решение может показаться вам немного взломанным.
Обновленный ответ может быть не тем, что вам нужно. Но, на мой взгляд, это служит нуждам.
Я знаю, все равно спасибо! Посмотрим, найдется ли у кого-нибудь лучший способ! :)
Так что я использую этот способ!
Мой state:
this.state = {
commodity: "",
isFilled: false
};
И тогда у нас есть:
<TextInput
style = {{ flex: 1 }}
onChangeText = {commodity =>
this.setState({
commodity,
isFilled: false
})
}
value = {
this.state.isFilled ? this.state.commodity + " Unit" : this.state.commodity
}
onFocus = {() => this.setState({ isFilled: false })}
onEndEditing = {() => {
if (this.state.commodity == "") {
this.setState({ isFilled: false });
} else {
this.setState({ isFilled: true });
}
}}
placeholder = "Commodity"
/>;
Теперь каждый раз, когда пользователь вводит текст, после редактирования ЕДИНИЦА будет добавляться.
Вы имеете в виду, что пользователь может менять цвет текста?
Текст Unit является частью значения TextInput, поэтому пользователь может выбрать его и удалить.
Извините, я неправильно понял вопрос: D - Тогда вы можете использовать 2 <Text>
Так что каждый раз, когда я набираю число, я получаю «кг»! - например, я набираю «23» и получаю значение: «2 кг 3 кг».