169 похожих чатов

У скоуп слотов нет видимости в @click? Хотел сделать что-то

по типу
<template #activator="{ showModal }">
<button @click="showModal = true">Showme {{ showModal }}</button>
</template>
Клик не отрабатывает, а вот в текстовой части выводит все верно

12 ответов

10 просмотров

в скопед слоте возвращай не стейт, а функцию которая стейт поменяет и засовывай её в клик

Alexander- Автор вопроса
Vladimir Voytenko ️
в скопед слоте возвращай не стейт, а функцию котор...

Это получается обязательно в методы её объявить когда байндишь в слот? А если да, то насколько это нормальная практика? Либо лучше через ref и @click="$refs.name.toggle"?

Alexander
Это получается обязательно в методы её объявить ко...

передать в скопед метод, лучше того, что пытались сделать вы

Alexander
Это получается обязательно в методы её объявить ко...

Не обязательно, маленькую функцию можно сразу в параметр передать.

Vladimir Voytenko ️
передать в скопед метод, лучше того, что пытались ...

А как тебе такое решение: <template #activator="{ obj }"> <button @click="obj.showModal = true">Showme {{ obj.showModal }}</button> </template> =D

Alexander- Автор вопроса
Vladimir Voytenko ️
передать в скопед метод, лучше того, что пытались ...

Я имею ввиду про дергать метод ref'ом vs дергать так, как вы подсказали. Что более vue-way

Alexander
Я имею ввиду про дергать метод ref'ом vs дергать т...

разные кейсы решаются, и то и другое норм

Alexander
Я имею ввиду про дергать метод ref'ом vs дергать т...

Через реф у вас получается странное решение. Есть рендер функция, которая рендерит кнопку. Кнопка зависит от параметра. Но изменяете вы параметр, используя обращение к компоненту персонально через родителя, и который предоставляет публичный метод для этого изменения. Не понятно, зачем здесь выходить за рамки слота. Передать сеттер - нормальное решение. Данные и изменение данных пойдут вместе

Alexander- Автор вопроса
Grigorii K. Shartsev
Не обязательно, маленькую функцию можно сразу в па...

Примерно так, получается? <slot name="activator" :showModal="() => {visible = true}"> Попытался вчитаться почему когда я пытался через showModal = true не отрабатывало, я правильно понял, что слот возвращает функция, соответственно ссылки на showModal в слоте и самом компоненте выходили разные?

Alexander
Примерно так, получается? <slot name="activator" ...

Слот - это место, где в компонент рендерится некоторое содержимое. То, что передаётся через слот - это шаблон, а в итоге рендер функция, которая на вход принимает параметры слота и по ним рендерит содержимое слота. Соответственно showModal = true - это просто внутри функции присваивание нового значение в аргумент этой функции. Изменение значения аргумента в теле функции не влияет на то, что передали в качестве значения аргумента

Grigorii K. Shartsev
Слот - это место, где в компонент рендерится некот...

<slot name='name' :param="value" /> - это аналог render this.$scopedSlots.name({ param: this.value }) А передача шаблона в слот <template #name="{ param }"> <button @click="param = x"> это аналог передачи рендер функции ({ param }) => h('button', listeners: { click: () => param = x } ) Т.е. просто присваивается внутри тела рендер функции новое значение в параметр. Никак не влияет на переданное значение

Alexander- Автор вопроса
Grigorii K. Shartsev
<slot name='name' :param="value" /> - это аналог r...

Большое спасибо! Надо было мне сразу функцию задебажить чтобы посмотреть что под капотом он локально в функцию копирует значения, тогда и пояснение не понадобилось бы. Изначально подумал, что там контекст компонента сохраняется через что-то наподобие ref.showModal в теле функции на клик 😢

Похожие вопросы

Обсуждают сегодня

Какой-то там пердун в 90-х решил, что есть какая-то разная типизация. Кого вообще это волнует?
КТ315
49
void terminal_scroll() { memmove(terminal_buffer, terminal_buffer + VGA_WIDTH, buffer_size - VGA_WIDTH); memset(terminal_buffer + buffer_size - VGA_WIDTH, 0, VGA_WIDTH); ...
Егор
47
Всем привет! Подскажите, пожалуйста, в чем ошибка? Настраиваю подключение к MySQL. Либы лежат рядом с exe. Все как по "учебнику"
Евгений
16
А можете как-то проверить меня по знаниям по ассемблеру?
A A
132
Здравствуйте! У меня появилась возможность купить книгу "Изучай Haskell во имя добра!". Но я где-то слышал, что эта книга устарела. Насколько это правда??
E
22
Здравствуйте! Я вот на stepic решаю задачи на хаскеле https://stepik.org/lesson/8443/step/8?unit=1578 мой код import Data.List (isInfixOf) removing :: String -> [String] ->...
E
10
Камрады, кто тесно работал с vtv, хотел уточнить. Ширина column задаётся жёстко на этапе создания дерева или можно в рантайме ее менять программно (не мышкой)?
Ed Doc
10
да ладно ... что там неочевидного ? глянуть в исх-ки датасета и/или кверика чтобы понять в каком месте и как выполняется обращения к св-вам blablaSQL - минутное дело, даже е...
Сергей
7
Здесь для arm кто-нибудь кодит ?
Nothing
52
Всем привет, у меня есть сервер принимающий входящие HTTP подключения, как проверить, что подключение было через прокси или нет, есть какие то поля в заголовках по которым мо...
Кибер Бомж
8
Карта сайта