vue.js - Vuex 和 Storybook:无法在未定义、null 或原始值上设置反应属性:未定义
问题描述
将 Vuex 与 Storybook 一起使用时遇到问题。我使用 Vue CLI 和 Storybook v5.3 制作了一个小基本应用程序来演示这个问题。代码可以在 github 上的这个 repo中找到。
本质上,我正在尝试将输入字段数据提交到我的商店。但是,我收到 Vuex 警告:“无法在未定义、null 或原始值上设置反应属性:未定义”和 TypeError:“index.js:47 TypeError:无法使用 'in' 运算符在未定义中搜索 'foo' ”。
我不知道为什么它不起作用,因为我并没有真正做任何复杂的事情。我唯一能想到的是 Vue 和 Vuex 不能很好地与 Storybook 开发的 React 配合使用。
有没有人遇到过这个?
干杯。
解决方案
我在 GitHub 上的组件和存储中发现了一些问题。更正它们后,我能够毫无错误地运行它。
首先, 没有data-index
属性<input>
。添加后,必须将其解析为整数,以便可以将其用作存储突变中的数组索引。
其次,使用Vue.set()
不正确。预期的论点是:
- 现有的反应对象/数组。
- 您要添加并具有反应性的属性/索引。
- 新属性/索引的值。
尝试改变
Vue.set(state.myData[index], "foo", data);
至
Vue.set(state.myData, index, {"foo": data});
推荐阅读
- asp.net-core - 如何根据客户端权限而不是广播来过滤数据?
- amazon-web-services - 如何使用 Unity AWS SDK for DynamoDB 在 x.io 中修复“错误从 AWS 解组响应,响应正文:未知错误”
- reason - 在 Reason-React 中使用 React 片段的语法是什么
- angular - 如何使用按需加载数据制作树视图?
- android - 创建自定义视图时出错
- javascript - 使用office-js格式化Excel中单元格中的单个字符
- powerbi - PowerBI 安全嵌入网页并从后端连接 powerbi
- python - 在DataFrame中多次拆分字符串
- angular - 具有角度 5 的可排序表行的树表
- javascript - 从 jQuery 调用控制器函数