Повторно отрендерить дочерние компоненты в svelte

Я использую svelte для своего нового проекта и довольно новичок в этом. У меня есть родительский компонент с несколькими дочерними компонентами. на дочернем компоненте позволяет мне выбрать дату, а затем я хочу автоматически повторно отобразить все другие дочерние компоненты, используя эту дату. На самом деле, они не будут перерисовывать, если я не использую магазин, но есть ли другой способ?


person Bouffe    schedule 09.08.2020    source источник


Ответы (1)


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

<script>
  import Child1 from "./Child1.svelte"
  import Child2 from "./Child2.svelte"
  let info = 'Hello from main';
</script>
​<h1>Main</h1>
<Child1 bind:text={info}></Child1>
<Child2 msg={info}></Child2>

Рабочий пример: https://svelte.dev/repl/51daf11dcf3a4ade9b3ed525eec51967?version=3.24.1

Есть и другие способы сделать это, например: createEventDispatcher

person grohjy    schedule 09.08.2020
comment
Спасибо за Ваш ответ ! Я не был уверен, что этот способ сработал, это то, что я сделал (с односторонней привязкой и отправкой) ... но на самом деле ошибки здесь не было. После изменения даты я хотел вызвать историю автоматически и отфильтровать ее, но я забыл использовать $: для внесения изменений (я использую const unsubscribe = ... вместо $: unsubscribe = ...). - person Bouffe; 09.08.2020