vue.js - Vuex 反应式 mapGetter 与传递的参数
问题描述
我有很多将参数传递给商店的 getter,例如:
this.$store.getters['getSomeThing'](this.id)
而且我没有找到关于如何以最佳方式使用mapGetters
来保持反应性的建议,同时传递论点。我发现的一个建议是映射getter,然后在mounted中传递参数:
computed: {
...mapGetters([
'getSomeThing'
])
},
mounted () {
this.getSomeThing(this.id)
}
这似乎真的不是最理想的,因为它只会检查挂载状态的变化。关于如何在将参数传递给 getter 时最好地保持反应性的任何建议?这是与上述代码匹配的 getter 示例:
getSomeThing: (state) => (id) => {
return state.things.find(t => { return t.id === id })
}
解决方案
这是我拥有的项目的一个片段:
computed: {
...mapGetters('crm', ['accountWithId']),
account() {
return this.accountWithId(this.$route.params.id)
}
},
这使得this.account
反应性和依赖于参数。
所以...
computed: {
...mapGetters([
'getSomeThing'
]),
thing() {
return this.getSomeThing(this.id)
}
},
推荐阅读
- node.js - 如何使用momentjs获取UTC的昨天开始时间
- java - java.net.ProtocolException:方法不支持请求正文:GET
- amazon-web-services - 究竟是什么意思 AWS 区域并为业务选择正确的区域
- python - 此代码中的错误“名称错误:名称未定义”是什么意思
- c++ - std::string::reserve 会改变 std::string 的大小吗?
- javascript - 为什么引导工具提示的样式不显示?
- ecmascript-6 - 如何将类中的方法添加到另一个类的现有对象
- javascript - 如何在另一个方法中使用从一个方法中的嵌套函数返回的值?
- reactjs - react admin中编辑页面上的未定义ID
- django - 提交表单时 Django 重定向不起作用