Я знаю, що у ванільному js ми можемо зробити
onclick="f1();f2()"
Що було б еквівалентом для здійснення двох функціональних дзвінків onClick в ReactJS?
Я знаю, виклик однієї функції такий:
onClick={f1}
Я знаю, що у ванільному js ми можемо зробити
onclick="f1();f2()"
Що було б еквівалентом для здійснення двох функціональних дзвінків onClick в ReactJS?
Я знаю, виклик однієї функції такий:
onClick={f1}
Відповіді:
Оберніть два дзвінки функції в іншу функцію / метод. Ось кілька варіантів такої ідеї:
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) Inline
<a href="#" onClick={function(event){ func1(); func2()}}>Test Link</a>
або еквівалент ES6:
<a href="#" onClick={() => { func1(); func2();}}>Test Link</a>
onclick={function() { f1(); f2(); }}
onclick={()=>{ f1(); f2() }}
onClick={ () => f1(); f2() }
Promises
, ймовірно, відповідь, яку ви шукали.
Можливо, ви можете використовувати функцію стрілки (ES6 +) або просту стару декларацію функції.
Тип оголошення звичайної функції ( не ES6 + ):
<link href="#" onClick={function(event){ func1(event); func2();}}>Trigger here</link>
Анонімна функція або тип функції стрілки ( ES6 + )
<link href="#" onClick={(event) => { func1(event); func2();}}>Trigger here</link>
Другий - це найкоротша дорога, яку я знаю. Сподіваюся, це допоможе вам!
Викликаючи кілька функцій onClick для будь-якого елемента, ви можете створити функцію обгортки, приблизно так.
wrapperFunction = () => {
//do something
function 1();
//do something
function 2();
//do something
function 3();
}
Ці функції можна визначити як метод на батьківському класі, а потім викликати з функції обгортки.
У вас може бути головний елемент, який спричинить зміну onChange таким чином,
<a href='#' onClick={this.wrapperFunction}>Some Link</a>
це onclick={()=>{ f1(); f2() }}
мені дуже допомогло, якщо я хочу одночасно дві різні функції. Але тепер я хочу створити аудіозапис лише однією кнопкою. Тож якщо я натискаю спочатку, я хочу запустити StartFunction, f1()
а якщо натискаю ще раз, то я хочу запустити StopFunction f2()
.
Як ви, хлопці, це усвідомлюєте?
const play = () => { console.log("played"); } const pause = () => { console.log("paused"); } function* audioSwitcher() { let paused = true; while (true) { if(paused) { play(); } else { pause(); } yield paused = !paused; } }
Можна використовувати вкладені.
Є функція буксирування одна є, 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}
ele.onclick = ...
абоaddEventListener
.