确保参数正确传递给 vuex mapActions
P粉288069045
P粉288069045 2024-02-21 13:05:43
[Vue.js讨论组]

我有一个 ProjectPage.vue 页面,它在 v-data-table 中显示问题。项目从侧边栏中的服务器 API 调用中检索并显示在那里。选择一个项目后,我想使用该项目的 id 从服务器获取其问题。是否可以使用 Vuex 来做到这一点。

使用 Vuex 是否可以让每个项目都可以使用相同的 .js 文件来检索其问题,因为可能有任意数量的项目。

我想做的是从 VerticalNavMenu.vue 将 id 和项目作为 props 传递给 ProjectPage,这样我就可以将 id 作为参数传递给 ProjectPage 内的 mapAction 以检索其问题。

我现在做的方法不起作用。当我打开项目的表格时,该表格没有可用数据

我希望 Peoject_Pages.js 有助于理解我的问题。

VerticalNavMenu.vue(相关模板行为38 -> 48)





NavBar.js

import axios from 'axios'

const state = {
    Projects: [],
}

const getters = {
    ProjectList: (state) => state.Projects
}

const actions = {
    async fetchProjects({ commit }) {
        const response = await axios.get('https://fadiserver.herokuapp.com/api/v1/my-projects/')

        commit('setProjects', response.data)
    }
}

const mutations = {
    setProjects: (state, Projects) => (state.Projects = Projects)
}

export default {
    state,
    getters,
    actions,
    mutations
}

ProjectPage.vue





Project_Page.js

import axios from 'axios'

const state = {
    issuesList: [],
}

const getters = {
    Project_Issues: (state) => state.issuesList
}

const actions = {
    async fetchProjectIssueList({ commit }, {projectid}) {
        const response = await axios.get('https://fadiserver.herokuapp.com/api/v1/my-issues-titles/?projectid=' + projectid)
    
        commit('setProjectIssues', response.data)
    },
}

const mutations = {
    setProjectIssues: (state, issuesList) => (state.issuesList = issuesList)
}

export default {
    state,
    getters,
    actions,
    mutations
}

P粉288069045
P粉288069045

全部回复(1)
P粉627136450

有两种方法可以解决您的问题。

  • 或者您在 fetchProjectIssueList 方法中传递一个带有键 projectid 的对象
  • 或者您不需要在 fetchProjectIssueList 方法中解构该对象
this.fetchProjectIssueList({ projectid: this.id })
...
async fetchProjectIssueList({ commit }, {projectid}) { ... }

this.fetchProjectIssueList(this.id)
...
async fetchProjectIssueList({ commit }, projectid) { ... }
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号