Передача параметра в вызов функции, который выглядит следующим образом: @click = "$ {hello}"

Если функция вызывается таким образом @click="${hello}", как мне передать в него параметр?

У меня функция работает нормально, если выглядит так: function hello() {...}, но больше не будет работать, если функция ожидает какой-либо параметр, например function hello(parameter) {...}, потому что вызов @click="${hello()} или @click=${hello(parameter}} приводит к некоторой ошибке необработанного отказа от обещания.

Как называется этот стиль вызова функции (@click="${hello}) и как мне правильно передать в него параметр?

@click="${function(){hello(parameter)}}" Это поможет?
samuellawrentz 26.10.2018 07:34

Вы используете какую-то веб-платформу, которая заставляет вас совершать звонки таким образом? Если да, вы должны отметить это в вопросе - контекст поможет сообществу дать вам более точные ответы.

Alexander Nied 26.10.2018 07:34

@samuellawrentz Вот и вся работа! Как называется этот стиль вызова функции и что мне следует гуглить, если я хочу узнать о нем больше?

LittleTomato 26.10.2018 07:50

@AlexanderNied Я использую стартовый комплект PWA, найденный здесь, и именно так вызываются функции в наборе. Я никогда не видел такого стиля звонков, и было бы здорово, если бы я просто знал, что гуглить, если я хочу узнать об этом больше!

LittleTomato 26.10.2018 07:54

Рад, что смог помочь! Когда вы используете круглую скобку (), вызывается функция. Итак, мы инкапсулируем вызов функции hello() в новую функцию, которая не вызывается. Прочтите о callbacks и passing a function as parameter. Также синтаксис ${}, который вы используете, больше связан со строками шаблона - developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/…

samuellawrentz 26.10.2018 07:57

@samuellawrentz Почему вызов hello () напрямую @click="${hello()} приводит к этой ошибке необработанного отказа от обещания, а вызов hello () в качестве обратного вызова в другой функции @click="${function(){hello(parameter)}}" работает без проблем?

LittleTomato 26.10.2018 08:52

Когда HTML анализируется в браузере, если он видит функцию, заканчивающуюся на (). Браузер пытается вызвать эту функцию. Неважно, является ли это событием щелчка или событием наведения. Он просто вызывает hello() во время загрузки страницы. Думаю, именно поэтому вы совершаете те ошибки. Причина этой ошибки: hello() вызывается при загрузке страницы, даже до того, как вы щелкнули по ней.

samuellawrentz 26.10.2018 09:29
0
7
34
0

Другие вопросы по теме