vue.js - 更新vuex中的数组在组件中没有反应
问题描述
我正在尝试推送/弹出 vuex 模块中的数组。
在 vue 开发工具中查看时,数组会正确添加/删除。但是计算的属性不会更新,我期待更改但它不起作用。
在 Vuex 模块中
// initial state
const state = {
expandedPayments: []
}
// getters
const getters = {
expandedPayments(state) {
return state.expandedPayments
},
}
// mutations
const mutations = {
[Mutations.PUSH_PAYMENTID](state, id) {
state.expandedPayments.push(id)
},
[Mutations.POP_PAYMENTID](state, id) {
_.pull(state.expandedPayments, id)
}
}
在组件中
<tr v-show="isExpanded">
...
isExpanded() {
return _.includes(this.expandedPayments, this.paymentId)
},
...mapGetters('payment', ['expandedPayments', 'isExpanded'])
解决方案
我认为这是因为您在includes
这里使用的是 lodash 的方法。这个方法应该检查一个元素是否是集合的一部分。
你可能想试试这个:
isExpanded() {
return this.expandedPayments.indexOf(this.paymentId) !== -1
}
推荐阅读
- javascript - Why doesn't Typescript infer return values correctly when possible return object types are specifically defined?
- python - 根据 x['dob'] 和 x['ReferenceDate'] 计算年龄 - Pandas
- r - 获取对数据集并将其定向以将焦点移至所有唯一值的左列,并在右侧显示所有对组合,尽管方向
- regex - Teradata REGEX 或 SUBSTR 删除两个 * 和星号之间的文本?
- graphite - Spring Boot Micrometer 分层度量命名空间串联
- docker - 带有 RabbitMQ 的 Docker 容器崩溃
- reactjs - React-Testing-Library - useReducer 调度不更新测试的组件状态
- sql-server - EF Core 3.1.9 - 使用存储过程的 FromRawSql 停止工作 - “底层读取器没有预期的那么多字段。”
- python-3.x - 为什么firefox在第四次运行后总是挂断
- ios - 在 XCode 模拟器上使用 Frida