我在react native中为textinput创建了一个字数统计,我认为我已经能够实现字数统计,但是,当我在textinput中键入内容时,我得到了一个错误,即'number number类型的无效prop值提供给textinput预期的字符串反应本地'。我已经尽力而为
constructor(props) {
super(props);
this.state = {
ModalVisibleStatus: false,
maxLength: 70,
charLength: 70,
messageValue: '',
};
}
onChangeMessage(messageValue) {
const input = messageValue;
const charLength = this.state.maxLength - input.length.toString();
this.setState({
charLength,
messageValue: charLength
});
}
<TextInput
placeholder={placeholder}
onChangeText={this.onChangeMessage.bind(this)}
value={this.state.messageValue}
autoFocus
autoCorrect
multiline
maxLength={this.state.maxLength}
style={styles.textInputStyle}
underlineColorAndroid='transparent'
/>
<Text style={{ textAlign: 'right', right: 5, }}>{this.state.messageValue}</Text>
答案 0 :(得分:2)
您可以在onChangeMessage函数中使用数字值更新状态。
有两种纠正方法。
以这种方式更新onChangeMessage函数
onChangeMessage(messageValue) {
const input = messageValue;
const charLength = this.state.maxLength - input.length.toString();
this.setState({
charLength,
messageValue: input
});
}
在更新状态时以这种方式在${charLength}
中写入charLength。
我认为您通过更新长度的输入值来做错了。您应该使用用户在输入字段中输入的内容更新输入值