Каков рекомендуемый способ управления состоянием переключения в svelte, передаваемом через prop? - PullRequest
1 голос
/ 09 октября 2019

Я создаю компонент переключения в Svelte, и я непосредственно изменяю опору isActive в дочернем компоненте: https://svelte.dev/repl/da651280c99c471d82944985339f8551?version=3.12.1

Я думаю о следующих альтернативах:

  1. отправляет событие, чтобы позволить родителю изменить состояние
  2. , создавая переменную, которая будет инициализирована из реквизита, переданного родителем

Я бы хотел избежать # 1, так какчувствует себя излишним. Что касается # 2, где лучшее место для инициализации переменной на основе реквизита?

Или какие другие альтернативы будут рекомендованы для управления этим делом (у меня такая же проблема для других реквизитов, таких как прохождение поискового текста, илисписок тегов)?

Ответы [ 2 ]

0 голосов
/ 18 октября 2019

Для меня пришло ответ: 1) будет ли изменение только косметическим? да = привязка к переменной 2) будет ли изменение влиять на данные модели? любое усилие = событие 3) странная вещь, вероятно, проблема дизайна

0 голосов
/ 17 октября 2019

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

<script>
    import Toggle from './Toggle.svelte';

    let someToggleValue = false;
</script>

<Toggle title="Toggle Header" bind:isActive={someToggleValue}>
     <div class="content">
        The Content
     </div>
</Toggle>
...