Я узнал, что можно передать действие компоненту: https://stackoverflow.com/a/66142037/15943057. Теперь мне интересно, можно ли было бы пройти один опционально.
Я создаю повторно используемый компонент <Wrapper>
, который я хочу использовать с переданным действием или без него. Если я попробую ответ, указанный выше, но не добавлю action = {myAction}
(потому что он мне не нужен), я получу две ошибки: (1) [HMR][Svelte] — «Неисправимая ошибка в: следующее обновление вызовет полный reload», (2) Отказ от необработанного обещания: TypeError: null не является объектом (оценка «ctx[2].call»). Обратите внимание, когда я добавляю action = {myAction}
, все работает, как и ожидалось.
Вы можете просто установить значение по умолчанию, которое ничего не делает:
<script>
export let action = () => {};
export let actionParams = undefined;
</script>
<div use:action = {actionParams} >
<slot/>
</div>