Javascript 单击ReactJS调用多个函数
我知道在香草JavaScript中,我们可以做到:Javascript 单击ReactJS调用多个函数,javascript,reactjs,Javascript,Reactjs,我知道在香草JavaScript中,我们可以做到: onclick="f1();f2()" 在ReactJS中进行两次函数调用onClick的等效方法是什么 我知道调用一个函数是这样的: onClick={f1} 将两个以上的函数调用包装到另一个函数/方法中。以下是该想法的几个变体: 1)分离方法 var Test = React.createClass({ onClick: function(event){ func1(); func2()
onclick="f1();f2()"
在ReactJS中进行两次函数调用onClick
的等效方法是什么
我知道调用一个函数是这样的:
onClick={f1}
将两个以上的函数调用包装到另一个函数/方法中。以下是该想法的几个变体: 1)分离方法
var Test = React.createClass({
onClick: function(event){
func1();
func2();
},
render: function(){
return (
<a href="#" onClick={this.onClick}>Test Link</a>
);
}
});
var Test=React.createClass({
onClick:函数(事件){
func1();
func2();
},
render:function(){
返回(
);
}
});
或ES6课程:
class Test extends React.Component {
onClick(event) {
func1();
func2();
}
render() {
return (
<a href="#" onClick={this.onClick}>Test Link</a>
);
}
}
类测试扩展了React.Component{
onClick(事件){
func1();
func2();
}
render(){
返回(
);
}
}
2)内联
<a href="#" onClick={function(event){ func1(); func2()}}>Test Link</a>
或ES6同等标准:
<a href="#" onClick={() => { func1(); func2();}}>Test Link</a>
也许您可以使用箭头函数(ES6+)或简单的旧函数声明 正常功能声明类型(非ES6+):
在这里触发
匿名函数或箭头函数类型(ES6+)
{func1(事件);func2();}}>在此处触发
第二条是我知道的最短的路。希望它能帮助你 在onClick上为任何元素调用多个函数,您可以创建一个包装函数,如下所示
wrapperFunction = () => {
//do something
function 1();
//do something
function 2();
//do something
function 3();
}
这些函数可以定义为父类上的方法,然后从包装器函数调用
你可能有一个主要的元素会导致这样的变化
<a href='#' onClick={this.wrapperFunction}>Some Link</a>
您可以使用嵌套
有两个函数,一个是openTab()
,另一个是closeMobileMenue()
,首先调用openTab()
,在closeMobileMenue()中调用另一个函数
如果我同时想要两个不同的函数,这个onclick={()=>{f1();f2()}}
对我帮助很大。
但现在我想创建一个只有一个按钮的录音机。因此,如果我先单击,我想运行StartFunctionf1()
,如果我再次单击,我想运行
停止函数f2()
你们是如何认识到这一点的?或者更差的:onclick={function(){f1();f2();}}
或者在ES6onclick={()=>{f1();f2()}
或者在cjsx:onclick={()=>f1();f2()}
如果第一个是异步的,该怎么办?我希望第二个只有在第一个成功后才能执行completed@Ratnabhkumarrai这是另一个与反应无关的问题。JS中的所有内容都是异步的,非常简单:传递一个调用这两个函数的函数,就像使用ele.onclick=…
或addEventListener
一样。如果第一个函数是setState,您需要确保在第二个函数运行之前发生/考虑到这一点,你会发现这篇文章很有帮助:关于一个带生成器的函数怎么样?您可以使用一个变量来决定在一个条件中发生的变化,该条件后面有一个函数,然后使用yieldconst play=()=>{console.log(“play”);}const pause=()=>{console.log(“paused”);}function*audioSwitcher(){let paused=true;而(true){if(paused){play();}else{pause();}yield paused=!paused;}}
wrapperFunction = () => {
//do something
function 1();
//do something
function 2();
//do something
function 3();
}
<a href='#' onClick={this.wrapperFunction}>Some Link</a>
function openTab() {
window.open('https://play.google.com/store/apps/details?id=com.drishya');
closeMobileMenue() //After open new tab, Nav Menue will close.
}
onClick={openTab}