.map 使用 onPress 道具上的函数 showHide 呈现一些 TouchableOpacity。一切都渲染得很好,但是当我按下 TouchableOpacity 之一时,什么也没有发生。
我尝试了很多不同的东西:
onPress={this.showHide}
onPress={() => this.showHide}
this.showHide = this.showHide.bind(this)
<ScrollView keyboardShouldPersistTaps="always">
这是我的代码:
constructor(props) {
super(props)
this.state = { show: false }
console.log(this.state.show)
// this.showHide = this.showHide.bind(this)
}
showHide() {
console.log(this.state.show)
console.log("**************************************************************")
alert("SUCCESS !")
/*this.setState({
show: !this.state.show
})*/
console.log(this.state.show)
}
render() {
const cards = datas.cards
return (
<ScrollView style={styles.scroll}>
{
cards.map(function(card, i) {
const keys = Object.keys(card)
const values = Object.values(card)
return(
<View key={i}>
<TouchableOpacity style={styles.titleView} key={i} onPress={this.showHide}>
<Text style={styles.titleText}>{card.title}</Text>
</TouchableOpacity>
{
keys.map(function(key, j) {
if(key != "title") {
return(
<View style={styles.row} key={j}>
<Text style={styles.titleCell} textStyle={styles.text}>{key}</Text>
<Text style={styles.valueCell}>{values[j]}</Text>
</View>
)
}
})
}
</View>
);
})
}
</ScrollView>
)
}