这个错误是因为在计算属性 sortedCountries
中,我们直接修改了原始的 countries
数组,这是不推荐的。计算属性应该是无副作用的,也就是说它们不应该修改它们所依赖的数据。
为了解决这个问题,我们应该返回一个新的排序后的数组,而不是修改原始的 countries
数组。
以下是修复后的代码:
computed: {
sortedCountries() {
// 使用 slice() 创建 countries 数组的一个浅拷贝,然后进行排序
return this.countries.slice().sort((a, b) => {
const aValue = parseInt(a.value.replace('+', ''));
const bValue = parseInt(b.value.replace('+', ''));
return bValue - aValue; // 降序排序
});
}
}
上述代码中,我们使用了 slice()
方法来创建 countries
数组的一个浅拷贝,然后对这个拷贝进行排序。这样,原始的 countries
数组不会被修改,从而避免了这个错误