Size: a a a

2020 September 06

К

Константин in Svelte [svelt]
это не очень хороший пример
источник

К

Константин in Svelte [svelt]
но допустим, это чужой компонент
источник

PM

Pavel 🦇 Malyshev in Svelte [svelt]
Константин
1) Компонент C - чайлд компонента P.
2) Компонент C имеет несколько кнопок и элементов с кликом, которые надо обработать.
3) После чего нужно ловить клик на P и понимать, откуда этот клик пришёл (какую кнопку нажали, например).

В реакте ты бы внутри C завернул бы переданный ему из P onClick в handleClick вида:

handleClick = (e, key, and, whatever, you, want) => {
 if (onClick instanceof Function) onClick(e, key, and);
};
<div class="overlay" onClick={ handleClick(e, "close", someCallBack) }>
 <button onClick={(e) => {  handleClick(e, "button A") }  } />
 <button onClick={(e) => {  handleClick(e, "button B", true) }  } />
</div>
прям точно также можешь сделать
источник

PM

Pavel 🦇 Malyshev in Svelte [svelt]
if (onClick instanceof Function)  вот такие проверки на коллбеках видимо не бесят))
источник

К

Константин in Svelte [svelt]
можешь, но наверху ты примешь первым аргументом не дом-эвент. Тебе надо понять, что это кастом эвент и вытащить detail
источник

К

Константин in Svelte [svelt]
Pavel 🦇 Malyshev
if (onClick instanceof Function)  вот такие проверки на коллбеках видимо не бесят))
меня тоже
источник

PM

Pavel 🦇 Malyshev in Svelte [svelt]
Константин
можешь, но наверху ты примешь первым аргументом не дом-эвент. Тебе надо понять, что это кастом эвент и вытащить detail
прям также
источник

PM

Pavel 🦇 Malyshev in Svelte [svelt]
1в1, прям идентично, прям как в реакт
источник

К

Константин in Svelte [svelt]
нееее
источник

К

Константин in Svelte [svelt]
dispatch принимает эвентнэйм и то, что он запихнёт в detail же
источник

PM

Pavel 🦇 Malyshev in Svelte [svelt]
причем тут диспатч вообще? в реакт есть диспатч?
источник

К

Константин in Svelte [svelt]
Константин
но допустим, это чужой компонент
вот же
источник

PM

Pavel 🦇 Malyshev in Svelte [svelt]
я же пишу, можешь сделать пряи как в реакт
источник

PM

Pavel 🦇 Malyshev in Svelte [svelt]
ради бога, создатель компонента может сделать прям как в реакт
источник

К

Константин in Svelte [svelt]
так это не реакт, а свелт. У него есть директива on:, которая ловит эвенты
источник

К

Константин in Svelte [svelt]
он тем и хорош
источник

К

Константин in Svelte [svelt]
коллбэки - это говнище
источник

К

Константин in Svelte [svelt]
зачастую лишнее нагромождение
источник

PM

Pavel 🦇 Malyshev in Svelte [svelt]
Константин
так это не реакт, а свелт. У него есть директива on:, которая ловит эвенты
нет, ты просто не видишь разницы между ивентом и коллбеком похоже. коллбеки - это 1к1, ивенты это 1коN
источник

К

Константин in Svelte [svelt]
Pavel 🦇 Malyshev
if (onClick instanceof Function)  вот такие проверки на коллбеках видимо не бесят))
сам же сказал
источник