首页 > 解决方案 > 如何在设置和测试阶段传递道具,而不覆盖东西?

问题描述

我有一个测试,在它的设置过程中,我将一些默认道具传递给组件。然后,在测试中,我使用setProps将更具体的数据传递给它。问题是默认数据和新数据都嵌套在同一个名为的 props 对象org中,而 Vue 显然抱怨默认数据被覆盖了。有没有解决的办法?

[Vue 警告]:避免直接改变 prop,因为每当父组件重新渲染时,该值都会被覆盖。相反,使用基于道具值的数据或计算属性。正在变异的道具:“optimisticClearFilters”

这是一个例子。当我从测试中执行此操作时,它似乎覆盖了所有org键。

wrapper.setProps( { org: { deptSize: [0, 5] }} );

标签: vue.jsvue-test-utils

解决方案


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} })

推荐阅读