Size: a a a

2020 October 20

PM

Pavel 🦇 Malyshev in Svelte [svelt]
Марк Танащук
storeName.update(store => {
 store.prop2 = "New value";
 console.log(get(storeName))
 return store;
})

Выведет в консоль обновленный объект, но в условном App.svelte такого вида:

<script>
 import { store } from "./store.js"
</script>

{$store.prop2}


prop2 не изменится
Что-то ты явно делаешь не так: https://svelte.dev/repl/25f5aa80c9d84fa8be3e9f2033d3bb9f?version=3.29.0
источник

PM

Pavel 🦇 Malyshev in Svelte [svelt]
Марк Танащук
https://svelte.dev/docs#readable

Тут указано, как изменять значение всего стора, а не его свойства
а разница?
источник

PM

Pavel 🦇 Malyshev in Svelte [svelt]
Марк Танащук
У меня также есть еще и вложенные объекты в объектах, так что я хотел бы иметь возможность сделать нечто по типу:

storeName.set(prop1.subProp1, "New value")
о, старый добрый концепт keypath  из Ractive:

component.set('foo.bar.baz', 'new value');


Но к сожалению это никак не типизируется, поэтому все от этого ушли. Скажи спасибо TS
источник

PM

Pavel 🦇 Malyshev in Svelte [svelt]
причем в Ractive эта штука еще работала и как optional chaining и можно было не переживать за undefined ошибки
источник

PM

Pavel 🦇 Malyshev in Svelte [svelt]
Марк Танащук
Если вне него то работает
источник

МТ

Марк Танащук... in Svelte [svelt]
Почему в update используется стор с знаком доллара?
источник

PM

Pavel 🦇 Malyshev in Svelte [svelt]
Марк Танащук
Почему в update используется стор с знаком доллара?
просто naming convention
источник

PM

Pavel 🦇 Malyshev in Svelte [svelt]
раньше я пытался пушить в свелт сообществе naming convention из RX где для обсервераблов используется постфикс $
источник

PM

Pavel 🦇 Malyshev in Svelte [svelt]
но это не сыскало поддержки. официальный способ - обсерверабл без префикса и постфикса, значение стора с префиксом $
источник

PM

Pavel 🦇 Malyshev in Svelte [svelt]
в компонентах это сахар, в js это просто для общего стиля
источник

МТ

Марк Танащук... in Svelte [svelt]
Странно, что в arrow function нужно к валью добавлять $
источник

PM

Pavel 🦇 Malyshev in Svelte [svelt]
не нужно оно, ищу ошибку у себя
источник

МТ

Марк Танащук... in Svelte [svelt]
Не по js'ски
источник

PM

Pavel 🦇 Malyshev in Svelte [svelt]
Марк Танащук
Странно, что в arrow function нужно к валью добавлять $
не нужно же
источник

МТ

Марк Танащук... in Svelte [svelt]
Без $ не работает
источник

МТ

Марк Танащук... in Svelte [svelt]
А нет
источник

МТ

Марк Танащук... in Svelte [svelt]
Тэкс
источник

PM

Pavel 🦇 Malyshev in Svelte [svelt]
источник

PM

Pavel 🦇 Malyshev in Svelte [svelt]
ну глупости не пиши, обычный js
источник

МТ

Марк Танащук... in Svelte [svelt]
значит в том что я в set await использую играет роль
источник