【发布时间】:2019-04-27 00:47:15
【问题描述】:
我有一个FlatList,我想显示一个类似quantity 的product 的数字。所以我为此使用state。现在,当我按下 TouchableOpacity 将数量更改为 1 时,在控制台中工作正常,但在 FlatList 中看不到任何变化。
constructor(props){
super(props);
this.state={
quantity : 0,
}
增量数量:
incrementCount=()=>{
if(this.state.quantity != 10){
console.log(this.state.quantity);
this.setState((prevState, props) => ({
quantity: this.state.quantity + 1,
}));
}
}
平面列表:
<FlatList
data={this.state.dataSource}
renderItem={({item}) =>
<View>
<Text>{item.title}</Text>
<Text>{this.state.quantity}</Text>
<TouchableOpacity onPress={this.incrementCount} activeOpacity={0.5}>
<AntDesign name="plus" size={15}/>
</TouchableOpacity>
</View>
}
/>
【问题讨论】:
-
你的状态没有
this.state.dataSource,ListView的数据是未定义的 -
@Vencovsky 对不起..我删除了很多代码...问题不在于那个。我认为当我们在 listView 中使用状态时我们无法更改状态。
-
也许这会改变一些事情
this.setState((prevState, props) => ({ quantity: prevState.quantity + 1, })) -
@Vencovsky 不工作...
标签: react-native react-native-flatlist