нагуглить
при обновлении на pinia 2.1.6 (обновлялся с 2.0.33) обращение к стейту требует .value для корректной работы
т.е. если раньше я мог писать:
const store = useStore()
const counter = store.counter
console.debug(counter)
и все было ок
то щас
const store = useStore()
const counter = store.counter
console.debug(counter.value)
смотрел в ченджлоге, но не увидел (не исключаю, что просто пропустил)
может кто сталкивался?
а что в counter? реф? реактив?
const counter = store.counter надо превратить в const counter = computed(() => store.counter)
емнип storeToRefs это и делает
либо storeToRefs да
но лично мне нравится когда наглядно
интерестинг, а раньше (имею ввиду до обновления 2.1.6) ничего не мешало использовать counter как просто store.counter а есть что-то в changelog'e может на эту тему?
storeToRefs не решил проблему условно: const { counter } = storeToRefs(store); someFunction(counter); выдает ошибку мол: TS2345: Argument of type Ref<{ value: number | null; [RefSymbol]: true; }> is not assignable to parameter of type number
ну во-первых все равно надо вэлью, ага
еще один вопросик тогда при обращении к counter.value я получаю в типе: Ref<string | null>.value: {value: number | null, [unknown]: true} а вот при обращении к counter.value.value уже все ок у меня складывается ощущение, что как будто бы обернулось в реактивность дважды 👀 ну собственно код такой же: const useStore = defineStore('counter', () => { counter = ref<number | null>(null); return { counter } }) const store = useStore() const { counter } = storeToRefs(store); someFunction(counter);
Обсуждают сегодня