将onPress事件处理程序添加到已存在的Button(事件侦听器?)

时间:2019-06-30 20:35:53

标签: react-native onclicklistener

我已经在具有许多按钮的react native中为移动应用编写了代码。我想通过添加其他功能来为每个按钮修改onPress事件。

因此,假设我的按钮执行不同的操作,但是当单击每个按钮时,我想记录一下该特定按钮是否被单击。

如何做到这一点而无需分别修改每个onPress事件?

除了移动应用程序之外,是否有类似于document.addEventListener的东西?

2 个答案:

答案 0 :(得分:0)

您可以为每个按钮发送不同的参数,如下所示:

onPressButtonHandler = (key, event) => {
     if(key == ‘one’){
     // your code here.
     }
     if( key == ‘two’){
     // code two here.
     }
}

在渲染功能中:

<button onPress={this.onPressButtonHandler.bind(this, ‘one’)}>One</button>
 <button onPress={this.onPressButtonHandler.bind(this, ‘two’)}>Two</button>

答案 1 :(得分:0)

我认为没有一种方法可以在不修改现有功能的情况下检测按下哪个按钮。

您可以为按钮创建一个“全局”功能,所有这些功能都将通过,然后调用实际的按钮。例如:

onPressHandler=(buttonPressedFunction)=>{
    //Do what you need
    buttonPressedFunction()   
}

firstButtonClick=()=>{
    //first button click function   
}
secondButtonClick=()=>{
    //second button click function   
}


//render

<Button title="first button" onPress={()=>{this.onPressHandler(this.firstButtonClick)}}/>

<Button title="second button" onPress={()=>{this.onPressHandler(this.secondButtonClick)}}/>

仍然必须修改每个按钮上的onPress,但至少它会通过单个功能,从而使按钮单击功能仍然独立