Запуск функции onClick при монтировании компонента - PullRequest
1 голос
/ 22 июня 2019

Вот моя функция в компоненте

myFunc = () => {...}

Я написал что-то вроде этого

<MyComponent onClick={this.myFunc()}/>

Функция onClick сработает при монтировании компонента. Но если я напишу так

<MyComponent onClick={this.myFunc}/>

или это

<MyComponent onClick={() => this.myFunc()}/>

Работает нормально.

Может кто-нибудь объяснить мне, почему это произошло?

1 Ответ

2 голосов
/ 22 июня 2019

Потому что, когда вы делаете это:

<MyComponent onClick={this.myFunc()}/>

Вызывает функцию при монтировании и присваивает onClick возвращаемому значению из this.myFunc.Вам нужно передать ссылку на функцию - любую из этих:

<MyComponent onClick={this.myFunc}/>
<MyComponent onClick={() => this.myFunc()}/>

Первая передает ссылку на this.myFunc, а вторая передает новую функцию, которая вызывает myFunc.Вам нужно будет использовать второй, если вы хотите передать аргументы this.myFunc.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...