Метод handleClickExample работает так, как я хочу, когда я использую функцию React без параметров с функцией стрелки для результатов.Пример:
class App extends Component {
constructor(props) {
super(props);
console.log("constructor", this)
}
handleClickExample = () =>{
console.log( "handleClickExample Method", this);
}
render() {
return (
<div className="App">
<button onClick={this.handleClickExample}>TIKLA</button>
</div>
);
}
}
Результат: Когда я нажимаю кнопку:
handleClick Method App {props: {…}, context: {…}, refs: {…}, updater: {…}, handleClickExample: ƒ, …}
Это результат, который я хочу.Однако, если я изменяю тот же код на параметризованную функцию, метод не работает, когда я нажимаю кнопку.
Пример:
class App extends Component {
constructor(props) {
super(props);
console.log("constrcutor", this)
}
handleClickExample = (name) =>{
console.log(name ,"handleClick Method", this);
}
render() {
return (
<div className="App">
<button onClick={this.handleClickExample("DOES NOT WORK")}>TIKLA</button>
</div>
);
}
}
Результат: Когда я нажимаю кнопку:
Метод не работает.Я могу решить эту проблему.Если я вызываю метод с использованием функции стрелки, проблема решается.
<button onClick={ () => this.handleClickExample("DOES NOT WORK")} ></button>
Or
<button onClick={this.handleClickExample('DOES NOT WORK').bind(this)}>TIKLA</button>
В чем разница между параметризованной функцией и функцией без параметров?Почему я также должен был использовать функцию стрелки при использовании функции параметра.Или почему я должен был связать?Или почему мне не нужно делать это в функции без параметров?Он не говорит, что я не попал в метод и не нашел это.Я не могу вызвать метод. Когда я нажимаю кнопку, никакая функция не работает или выдает ошибку.
Или она также работает, когда вы это делаете.
handleClickExample = (name) => (e) => {
console.log(name ,"handleClick Method", this);
}
Почему у наспередать здесь параметр (e) ?