通过按钮传递值

时间:2019-07-18 07:40:23

标签: javascript react-native

我的数据库值中有数组。

"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)的值。我能怎么做?谢谢。

2 个答案:

答案 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)