我的数据库值中有数组。
"ExercisesData": [
{
"Id": "01",
"Reps": "10",
"StartDate": "2019-06-20",
"EndDate": "2019-06-21",
"Notes": "...."
},
{
"Id": "02",
"Reps": "1",
"Notes": "....."
},
{
"Id": "03",
"Reps": "150",
"Notes": "......"
}
]
我采用这些值并为它们创建一个按钮。像这样:
checkAttività (){
//.....
}
render() {
const exercises = this.state.Exercises.map(exercise => {
return (
<View>
<Text style={{ fontSize: 15 }}>Id: {exercise.Id}</Text>
<Text style={{ fontSize: 15 }}>Reps: {exercise.Reps}</Text>
<Text style={{ fontSize: 15 }}>Note: {exercise.Notes}</Text>
<TouchableOpacity
style={[styleButton.button, styleButton.buttonOK]}
onPress={() => this.checkAttività(exercise.Id)}>
<Text style={styleButton.buttonTesto}>Choose</Text>
</TouchableOpacity>
</View>
这样,我为数组中的每个值创建一个按钮。我应该做的是创建一个按钮,该按钮允许我传递与单击的键相对应的id值。从某种意义上说:
Id:01
代表:
注意:...
Button1
Id:02
代表:
注意:...
Button2
如果单击button1,我将传递Id(01)的值。我能怎么做?谢谢。
答案 0 :(得分:1)
您可以执行此操作。只要绑定事件,您就可以传递任何参数。
onPress={ this.someEvent.bind(this,exercise.Id)}
someEvent(id){
console.log("You will get the id: ",id);
}
答案 1 :(得分:1)
只需在id
中添加checkAttività
参数,例如:
checkAttività (id){
//.....
}
您已经使用了匿名功能,因此应该做到这一点:
onPress={() => this.checkAttività(exercise.Id)}
还应该绑定事件,例如在构造函数中:
this.checkAttività = this.checkAttività.bind(this)