Я думаю, что эта строка - ваша проблема:
<TouchableOpacity onPress={this.decrementCount,()=>this.setState({productId:item.id})}>
Прежде всего, вы должны определить свою функцию рендеринга в своем классе, и вы должны определить свою функцию onPress отдельно от нее. Например:
class MyClass extends React.Component {
handlePress = (item) => {
this.decrementCount()
this.setState({productId: item.id})
}
renderItem = ({item, index}) => {
return (...code from above, but using this.handlePress rather than your onPress function as currently defined)
}
render() {
return (
<FlatList
data={this.state.dataSource}
renderItem={this.renderItem}
/>
)
}
}
Я думаю, что настоящая причина, по которой он сейчас не работает, заключается в том, что вы пытаетесь вызвать this.setState в качестве обратного вызова в вашей функции onPress. Это, вероятно, будет работать как есть, если вы изменили свой текущий onPress с:
onPress={this.decrementCount,()=>this.setState({productId:item.id})}
в
onPress={() => this.setState({productId:item.id}, this.decrementCount)}
как я вполне уверен, вы можете иметь функцию, вызываемую в качестве обратного вызова из this.setState.
Надеюсь, это поможет!