value: boolean, хотя задано Ref<boolean> и при пуше ругается тоже что value: boolean
тут достаточно пушить value: true и все будет работать
value это реактивная переменная которую я получаю, и пушу в test
еще раз: рефы внутри реактивного объекта раскрываются и имеют явный тип без Ref<T>, поэтому тебе нужно: а) убрать в интерфейсе Ref<boolean> б) пушить boolean, не нужно его дополнительно оборачивать в реф
я получаю реактивную переменную из композабла, и ее пушу в массив, если я буду пушить ее через .value ее реактивность же пропадет
Не пропадёт
так пушь без .value и она автоматически раскроется
интерфейс поменяй для начала
как это не пропадет, если через .value я запушу не саму реактивную переменную, а только ее текущее значение
если пушить без .value получится что 'Ref<boolean>' is not assignable to type 'boolean'
a = ref(0) b = ref(1) a.value = b.value; b.value = 2; a.value = ? пропадет реактивность?
пропадёт связь между переменными
и как тогда связывать два рефа?
const t = () => { const q = ref(111) setTimeout(() => q.value = 4,1000) return q } const a = t() const q = ref([]) q.value.push(a.value) в таком случае a будет 4 через время, а в q так и останется [111]
передавать его напрямую без .value
все верно, нужно пушить без .value, чтобы сохранить связь
ну, а test в таком случае какой переменной должен быть? ref?
тогда это будет один объект
если ты про q, то да, там должен быть ref
да, в этом и смысл, тогда сохранится связь
ну вот в таком варианте не ругается, не знаю на сколько это легально const test: Test[] = reactive([])
как передать? a = b? я про этот пример const a = ref(0); const b = ref(1); a.value = b.value; b.value = 2;
const foo = reactive({ bar: null }) const bar = ref(0) foo.bar = (bar) console.log(foo.bar) // 0 (No .value) bar.value++ console.log(foo.bar) // 1
мы говорим про unwrapping - это когда есть реактивный объект и в него засовывают рефы, а вью не просто их кладет туда, но раскрывает и превращает в обычные свойства объекта, то есть у них больше нет .value
Не ругается пушо тип не там присвоил, реактив как и реф, работает через дженерик
Этот пример не релевантен вопросу, там обсуждается хранение ref внутри reactive. Тут просто присваивать по ссылке объект и всё
Там, кстати, как раз с массивами не работает нормально
да там много граблей, которые можно собрать
Обсуждают сегодня