提供给textinput的类型编号的无效prop值预期字符串响应本机

时间:2019-09-02 07:11:56

标签: javascript reactjs react-native react-redux

我在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>

1 个答案:

答案 0 :(得分:2)

您可以在onChangeMes​​sage函数中使用数字值更新状态。

有两种纠正方法。

  1. 以这种方式更新onChangeMes​​sage函数

    onChangeMessage(messageValue) { const input = messageValue; const charLength = this.state.maxLength - input.length.toString(); this.setState({ charLength, messageValue: input }); }

  2. 在更新状态时以这种方式在${charLength}中写入charLength。

我认为您通过更新长度的输入值来做错了。您应该使用用户在输入字段中输入的内容更新输入值