vuejs2 - 如何使用 Vuex 商店修复 Buefy b-table 组件中的“计算属性 ... 已分配给但它没有设置器”错误
问题描述
情况:
我的 Vuex 商店中有一个 VueJS2 应用程序,其中包含一系列项目:
export default new Vuex.Store({
state: {
checkedItems: []
}
...
这个想法是通过这个数组让一个 buefy b-table 组件中的已检查(选定)项目全局可用。b-table 在我的组件中启动,如下所示:
<b-table
...
:checked-rows.sync="checkedItems"
...
并且商店的状态在组件内映射,如下所示:
...
computed: {
...mapState(['checkedItems'])
},
...
问题:
行在视觉上被选中(即复选框在选中/清除之间切换),但商店的 checkedItems 数组没有得到更新。我知道这一点,因为为了调试,我会显示数组的计数,无论我(取消)选择多少项目,它都保持为零。浏览器控制台显示“[Vue 警告]:已分配计算属性“checkedFrqs”,但没有设置器。” 当我选择一行时。
但是我注意到,当我在其中一个组件方法中手动推送一个条目时它会起作用,即:
this.checkedItems.push(row)
问题:
如何得到
:checked-rows.sync="checkedItems"
为 Vuex 阵列无缝工作?(PS 当我使用本地数组而不是 Vuex 商店的数组时,一切正常)
解决方案
傻我,这解决了它:
:checked-rows.sync="$store.state.checkedItems"
(不使用 getters->mapState)
推荐阅读
- tensorflow - 加载 SSD Inception v2 模型时 ML.NET 输入形状不匹配
- sql - 从 SQL 响应中读取 uniqueidentifier 时出现问题
- arrays - Mongodb通过键值更新嵌套数组
- python - 如何在熊猫中对数据类别进行汇总?
- python-3.x - ValueError:尺寸必须相等(keras)
- javascript - 执行 npm install angular-firebase --save 时出错
- android - 如何在android中阻止相机切换?
- spring-webflux - 如何使用 `Function 增加主题消费者吞吐量
, 通量 >`? - javascript - 如何根据多个条件过滤我的数据?
- oracle - Oracle 视图对象类型列