gpt4 book ai didi

javascript - 我可以在 Vue/Vuex 中使用 mapGetters 动态调用 getter 吗?

转载 作者:行者123 更新时间:2023-12-01 00:26:43 25 4
gpt4 key购买 nike

我的组件模板:

<template>
<section class="stage my-5">

<div class="stage-heading">
<h3 class="stage-number mb-4">Stage {{stage}}</h3>
<h6 class="stage-hrs">Total Hrs: {{totalHours}}</h6>
</div>

<div class="stage-courses card text-white bg-info mb-3" v-for="course in courses" :key="course.id">
<div class="card-header">Stage {{course.stage}}</div>
<div class="card-body">
<h5 class="card-title">{{course.title}}</h5>
<p class="card-text">{{course.creator}}</p>
<p class="card-text">{{course.hours}} Hours</p>
</div>
</div>

</section>
</template>

我的 Vuex 商店中的状态:

const state = {
roadmapStage1: [],
roadmapStage2: [],
roadmapStage3: [],
};

我的 Vuex 商店中有 getter,如下所示:

getRoadmapStage1: state => state.roadmapStage1,
getRoadmapStage2: state => state.roadmapStage2,
getRoadmapStage3: state => state.roadmapStage3,

我正在尝试从组件动态调用这些 getter 之一,该 getter 取决于组件的 prop:

export default {
name: "Stage",
data() {
return {
courses: []
}
},
props: ['stage'],
computed: mapGetters({courses: 'getRoadmapByStage'})
}

有什么方法可以将 Prop 插入到“getRoadmapByStage”中吗?例如所以它的功能类似于
getRoadmapByStage${stage}

最终,我试图让组件在 roadmapStage 数组更新时重新渲染。谢谢!

最佳答案

我建议使用带有阶段 id/编号参数的 getter,它会返回您想要的路线图,如下所示:

// in getters.js
//gets the current roadmap based on the stage number
getRoadmapByStage: (state) => (stageNumber) => {
return state["roadmapStage" + stageNumber];
}

现在在您的组件中您可以拥有:

computed: {
currentRoadmap() {
// now we'll pass in your 'stage' prop to get the appropriate map
// this will re-render the component as that prop changes
return this.$store.getters.getRoadmapByStage(this.stage);
}
}

关于javascript - 我可以在 Vue/Vuex 中使用 mapGetters 动态调用 getter 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58919348/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com