@AlexCruel

Как присвоить только значение ref-ссылки другой ref-ссылки?

const ref1 = ref({
   main_title: {},
   main_desc: {}
});

const ref2 = ref({
    title: {},
    desc: {}
});

const save = (event: MouseEvent) => {
    ref1.value.main_title = ref2.value.title;  // ?
    ref1.value.main_desc = ref2.value.desc;  // ?
};


При нажатии на определенную кнопку срабатывает save функция. Далее необходимо извлечь из ref2 значения для ref1. Причем при последующем реактивном изменении ref2, ref1 должен изменяться только при нажатии кнопки (функция save). В приведенном примере, как я понимаю, присваивается не значение, а ссылка на ref2, что приводит к реактивному изменению значений ref1.
  • Вопрос задан
  • 67 просмотров
Решения вопроса 1
Fragster
@Fragster
помогло? отметь решением!
Не совсем так. Если бы main_title и main_desc были бы примитивными типами - всё бы работало как надо, но, судя по `main_title: {}`, это не совсем так. Более того, оно бы и не с ref также бы работало, только без вызова реактивных эффектов:
`let a = {k: 1}; let b = a; a.k = 2; console.log(b.k); \\ 2`

Для непримитивных типов нужно глубоко клонировать объект, есть много способов, некоторые описаны в https://developer.mozilla.org/en-US/docs/Glossary/... также есть в различных библиотеках типа lodash или jquery. Ну или самый тупой способ через `JSON.parse(JSON.stringify())`, но он часто медленнее и не всегда применим.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы