在React Native

时间:2015-12-18 05:24:26

标签: react-native

我正在尝试使用文本输入和2触摸突出显示" +"来创建数字增量/减量器。和" - "。

<TextInput
  keyboardType='number-pad'
  value={this.state.textValue}
  onChangeText={this.updateText}
  style={styles.textInput}
/>

<TouchableHighlight
  style={styles.button}
  onPress={this.increment}>
    <Text style={styles.buttonTextFill}>+</Text>
</TouchableHighlight>

<TouchableHighlight
  style={styles.button}
  onPress={this.decrement}>
    <Text style={styles.buttonTextFill}>-</Text>
</TouchableHighlight>

我使用以下方法:

updateText: function (text) {
    this.setState({textValue: text});
},

decrement: function () {
    this.setState({textValue: this.state.textValue - 1});
},

increment: function () {
    this.setState({textValue: this.state.textValue + 1});
},

此外,我已将 textValue 设置为getInitialState函数中的状态并将其设置为0.

为什么这不起作用,我做错了什么?

1 个答案:

答案 0 :(得分:1)

看起来TextInput不是值为数字的粉丝。我在TextInput的值上放了一个.toString(),一切都按预期开始工作。此外,您需要将字符串值转换为on更改中的数字,因为TextInput会在您更改字符串时传递字符串。

新的更新方法:

updateText: function (text) {
    this.setState({textValue: +text});
},

新的TextInput:

<TextInput
    keyboardType='number-pad'
    value={this.state.textValue.toString()}
    onChangeText={this.updateText}
    style={styles.textInput}
/>

https://rnplay.org/apps/ZNcwSg