调用多个函数单击“反应JS”
Call multiple functions onClick ReactJS
我知道在vanilla JavaScript中,我们可以做到:
onclick="f1();f2()"
在 ReactJS 中onClick
进行两个函数调用的等效项是什么?
我知道调用一个函数是这样的:
onClick={f1}
将
two+ 函数调用包装在另一个函数/方法中。以下是该想法的几个变体:
1( 分离方法
var Test = React.createClass({
onClick: function(event){
func1();
func2();
},
render: function(){
return (
<a href="#" onClick={this.onClick}>Test Link</a>
);
}
});
或使用 ES6 类:
class Test extends React.Component {
onClick(event) {
func1();
func2();
}
render() {
return (
<a href="#" onClick={this.onClick}>Test Link</a>
);
}
}
2( 内联
<a href="#" onClick={function(event){ func1(); func2()}}>Test Link</a>
或等效的 ES6
:<a href="#" onClick={() => { func1(); func2();}}>Test Link</a>
也许你可以使用箭头函数(ES6+(或简单的旧函数声明。
普通函数声明类型(非 ES6+(:
<link href="#" onClick={function(event){ func1(event); func2();}}>Trigger here</link>
匿名函数或箭头函数类型 (ES6+(
<link href="#" onClick={(event) => { func1(event); func2();}}>Trigger here</link>
第二个是我知道的最短的路。希望对您有所帮助!
React 功能组件
<button
onClick={() => {
cancelOrder();
handlerModal();
}}
>
Cancel
</button>
在onClick上为任何元素调用多个函数,您可以创建一个包装函数,如下所示。
wrapperFunction = () => {
//do something
function 1();
//do something
function 2();
//do something
function 3();
}
这些函数可以定义为父类上的方法,然后从包装函数调用。
你可能有主要元素,它会导致这样的变化,
<a href='#' onClick={this.wrapperFunction}>Some Link</a>
最佳方法:
onClick={ () => { f1(); f2();} }
如果你必须同时在一个按钮点击上应用两个函数,那么我们可以简单地在 React js 中添加这样的功能。
<button onClick={()=> {fun1(); fun2()}}>Show more</button>
您可以简单地将其包装在[]
中。这也适用于材料 UI 按钮。
<Button onClick={(event) => [function1(), function2()]}>Click Me</Button>
点击查看示例代码
点击查看输出
假设你有一个按钮,你想执行两个onClick事件,只需单击一下即可显示隐藏的文本并隐藏按钮。
let a = 'invisible'
let b = 'visible'
const [show, setShow] = useState(a)
const [buttonshow, setButtonShow] = useState(b)
<button onClick={() => {setButtonShow(a); setShow(b)}}>Read More</button>
<p>This text will show after you press the button Read more and Read
more will be hidden from the DOM
</p>
如您所见,匿名函数只返回了两个函数。
{setButtonShow(a); setShow(b)}
//Don't do this way
function App() {
return (
<div>
<button
onClick={() => {
console.log('hello');
console.log('world');
}}>
I'm a button
</button>
</div>
);
}
//Do this way
function App() {
function fun1() {
console.log('hello');
}
function fun2() {
console.log('world');
}
return (
<div>
<button onClick={() => {fun1();fun2();}}>Click</button>
</div>
);
}
您可以使用嵌套。
有拖曳函数一个是openTab()
,另一个是closeMobileMenue()
,首先我们调用openTab()
,调用closeMobileMenue()
内部的另一个函数。
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}
一个简单的单行:
onClick={ () => f1() || f2() }
相关文章:
- 反应.js:未捕获类型错误:未定义不是一个函数
- 反应.js:如何更改组件项的位置
- 同构反应.js无通量
- 动态按钮输出反应.js
- 反应.js:将回调传递给子组件并删除组件
- 使用动画时出现反应JS错误
- 反应.js:同一父母的两个孩子之间的通信
- 同构反应.js&iso http
- 反应.js通过数组创建循环
- 反应.js组件:用户定义的属性.我做得对吗
- 反应.js - 如何创建手风琴(与兄弟姐妹交谈)
- 定时反应.js应用程序
- 反应.js生成新的随机数
- 反应.js对大型数组进行排序
- 反应.js如何在组件内部渲染组件
- 为什么要做出反应.js事件委派很快
- 反应.js应用程序.js文件大小
- 反应.js和具有动态宽度的水平IScroll 5
- 反应.js:如何在点击时附加组件
- 反应Js 彩色托盘抽屉