React Native-TextInput警告和onPress未定义

时间:2018-07-21 18:19:31

标签: javascript android reactjs user-interface react-native

大家好,我在这里有两个问题。

首先在我的文本输入中,我有一个“警告”,我认为它正在等待某些字符串,因此我首先在“值”中使用“ .toString()”,然后它确实消除了警告,但是当按下按钮时,我在textinput中看不到任何输出。

_incrementCount(index) {
    this.setState({ ['count'+index]: this.state['count'+index] + 1 });
    console.log(this.count);
    alert(this.count);
}
_decreaseCount(index) {
    this.setState({ ['count'+index]: this.state['count'+index] - 1 });
    console.log(this.count);
    alert(this.count);
}
changeTextHandler(text) {
    this.setState({ ['count'+index]: text });
};
return (
    <View>
        <TextInput
        onChangeText={ (text) => this.changeTextHandler(text) }
        value={ this.state.count }      // value
        />
    </View>
)

这是我的下一个问题。

在我的按钮中

第二,我试图增加和减少数字,并且输出应在textinput中。但是,当我单击/轻按按钮时,也会在console.log中显示警报“ undefined”。

    <TouchableOpacity
        onPress = {() => this._incrementCount(index)}>
        <Text style = {styles.buttonText}> + </Text>
    </TouchableOpacity>
    <TextInput
        onChangeText={ (text) => this.changeTextHandler(text) }
        value={ this.state.count }
    />
    <TouchableOpacity
        onPress = {() => this._decreaseCount(index)}>
        <Text style = {styles.buttonText}> - </Text>
    </TouchableOpacity>

PS:因为这个原因,我正在使用这些索引; React Native - Flatlist Single Select

1 个答案:

答案 0 :(得分:0)

对于第一个问题,您什么都看不到,因为您将textInput的值设置为limit=10,但是您从未更改过this.state.count,因为在onChange函数上设置的是count + index,因此结果将是您仅更改this.state.count状态,而不更改计数状态。

对于第二个问题,您将变得不确定,因为您没有传递onPress函数。永远不会设置要传递的索引(根据您提供的代码)。