Задать вопрос
  • Почему родительский метод вызывается сам по себе?

    maxfarseer
    @maxfarseer
    https://maxpfrontend.ru, обучаю реакту и компании
    В onClick нужно передавать функцию-обработчик, а вы передаете функция-обработчик() === результат вашей функции...
    То есть как только кнопка оказывается на странице, сразу же происходит вызов (круглые скобки).

    Пример:
    function myFunc(data) { console.log(data) }
    console.log( myFunc('test') ) => выведеть в консоль 'test'
    console.log( myFunc ) => выведеть в консоль function myFunc ...


    P.S. естественно, сразу возникает вопрос - как передать функцию + аргумент... Вам нужен либо метод bind, либо анонимная функция... Есть у разных подходов плюсы-минусы, но я тем не менее люблю использовать data-аттрибуты для этого.. тогда при передаче функции обработчик, у меня в event.target.dataset - есть все что нужно.

    P.P.S. когда возникают такие вопросы, значит нужно идти и копать основы, так как в дальнейшем только сильнее будет усиливаться непонимание между функциями, аргументами, полями свойств в props'ax и так далее... Начать по теории, рекомендую отсюда: https://learn.javascript.ru/function-basics, затем: https://learn.javascript.ru/introduction-browser-events
    Ответ написан
    1 комментарий