Pinia - как добавить данные
Использую vueUse для работы с localStorage и Pinia, но не могу понять, почему при вызове функции обновления не добавляется новый элемент объекта
const tasks = useStorage(
STORE_NAME,
{
id: Math.random().toString(16).slice(2),
data: {
title: 'Default title',
description: ''
}},
localStorage,
{
mergeDefaults: true,
},
);
Функция, которую вызываю:
function updateTasks(newTasks) {
tasks.value = {...tasks.value, ...newTasks};
}
Ну и сам вызов:
@click="() => {store.updateTasks(
{
id: Math.random().toString(16).slice(2),
data: {
title: 'Default title',
description: ''
}}
)
}
"
При вызове функции просто заменяются значения в хранилище без добавления нового элемента. Как решить данную проблему?
Ответы (1 шт):
Автор решения: eri
→ Ссылка
Не замещайте объект новым. Это ломает всю реактивность.
Может так или пройтись циклом.
Object.assign(tasks.value,newTasks)
Ну ещё странно почему taskS - объект, а не массив.