首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当我选择待办事项列表时,待办事项不会更新

当我选择待办事项列表时,待办事项不会更新
EN

Stack Overflow用户
提问于 2022-08-15 08:37:18
回答 1查看 104关注 0票数 1

我有两个组件:TodoListTodoListsList。它们相应地从todos.jstodoLists.js模块中的状态获取数据。当我选择一些待办事项列表,即将其标记为活动时,TodoListsList被更新,但TodoLists没有更新,认为数据已经更新。我就是这样做的。

todoListsStatemarkAsActive() (todoLists.js):

代码语言:javascript
复制
import todos from '@/modules/todos.js'

// ... some code ...

const todoListsState = reactive({
    todoLists: [],
    todoListsAreLoading: false,
    removedTodoListId: null,
    editedTodoListId: null,
    editedTodoListName: '',
    baseTodoListsApiUrl: process.env.VUE_APP_BASE_TODO_LISTS_API_URL,
    todoListCreationFormModalId: 'todoListCreationFormModal',
    todoListNameChangeFormModalId: 'todoListNameChangeFormModal'
});

// ... some code ...

function markAsActive(value) {
    let { close } = infoToast();
    if (value) {
        axios.post((todoListsState.baseTodoListsApiUrl + 'mark-as-active'), {
            activatedTodoListId: value
        }).then(function () {
            getTodoLists();
            const { getTodos } = todos();
            getTodos();
        }).catch(function () {
            dangerToast('Failed to mark to-do list as active.');
        }).finally(() => {
            close();
        });
    }
}

todosStategetTodos() (todos.js):

代码语言:javascript
复制
const todosState = reactive({
    todos: [],
    activeTodoListId: 0,
    removedTodoId: null,
    editedTodoId: null,
    editedTodoText: '',
    todosAreLoading: false,
    baseTodosApiUrl: process.env.VUE_APP_BASE_TODOS_API_URL,
    todoAdditionFormModalId: 'todoAdditionFormModal',
    todoEditFormModalId: 'todoEditFormModal'
});

// ... some code ...

async function getTodos() {
    try {
        todosState.todosAreLoading = true;
        const response = await axios.get(todosState.baseTodosApiUrl);
        todosState.activeTodoListId = response.data[0];
        todosState.todos = response.data[1];
    } catch (e) {
        dangerToast('To-dos loading failed.');
    } finally {
        todosState.todosAreLoading = false;
    }
}

todosState.todos在控制台中的表现如何:

todosState.todos安装Todos.vue时:

它看起来不像数组松了,它是反应性的。

如果你需要别的东西来理解我的问题,那就随便问吧。帮助感激。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-08-16 16:29:16

问题解决了!我刚把todosState

代码语言:javascript
复制
export default function () {}

而且起作用了!终于!This thread帮了我很多忙。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73358585

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档