vue.js - 如何在设置和测试阶段传递道具,而不覆盖东西?
问题描述
我有一个测试,在它的设置过程中,我将一些默认道具传递给组件。然后,在测试中,我使用setProps
将更具体的数据传递给它。问题是默认数据和新数据都嵌套在同一个名为的 props 对象org
中,而 Vue 显然抱怨默认数据被覆盖了。有没有解决的办法?
[Vue 警告]:避免直接改变 prop,因为每当父组件重新渲染时,该值都会被覆盖。相反,使用基于道具值的数据或计算属性。正在变异的道具:“optimisticClearFilters”
这是一个例子。当我从测试中执行此操作时,它似乎覆盖了所有org
键。
wrapper.setProps( { org: { deptSize: [0, 5] }} );
解决方案
For example if I have:
var posts = {
status: 6
rows: [{}, {}, {}]
details: "some details",
amount: 1
}
And I want to test component with changed status value without exception, I do:
post.status = status
wrapper.setProps({ post: { ...post} })
推荐阅读
- apache-kafka - 卡夫卡在存储新消息后截断了它们
- javascript - 需要帮助尝试使用 UserScript 在网站上“自动”更改颜色
- python-3.6 - 用于 xgboost 的基于 F1 的自定义评估函数 - Python API
- mozilla-deepspeech - DeepSpeech:区分演讲者
- xamarin - 我可以使用一个参数同时在模板上设置多个属性吗?
- android - 安装在 Android 设备中的已发布 APK 被 Play Protect 阻止错误
- angular - Angular 4 需要时间来影响实时网站上的新变化
- php - image/intervention: jpg/png转换成webp时生成的空白图片
- c# - 为什么在使用鼠标单击时使用 navmeshagent 播放器会到达一个点并继续移动到那里?
- ios - 在情节提要中使用 xib 文件是个好主意吗