Winston_Mo_ 2023-02-20 10:05 采纳率: 0%
浏览 38

shallowReactive没有起效果

shallowReactive没有起效果,用isReactive输出person.name 理论上应该为true


const person = shallowReactive({
  // 只将第一层数据做了响应式处理
  name: '张三',
  age: 18,
  likeFood: {
    fruits: {
      apple: '苹果' // 深层次的数据将会是一个普通的对象
    }
  }
})
onMounted(() => {
//输出后发现是两个false  只输出person为true
  console.log(
    isReactive(person.name),
    '...............',
    isReactive(person.likeFood)
  )

})
  • 写回答

2条回答 默认 最新

  • MarkHan_ 2023-02-20 10:09
    关注

    根据你的代码,person.name 是一个普通的值,而不是响应式对象,因此 isReactive(person.name) 应该返回 false。而 person.likeFood 是一个对象,因此应该是响应式的,但是由于你使用的是 shallowReactive,它只会对对象的第一层属性进行响应式处理,因此它的深层次的属性 fruits 中的 apple 并没有被响应式处理,所以 isReactive(person.likeFood) 也返回了 false。如果你想要对所有属性进行深层次的响应式处理,可以使用 reactive 代替 shallowReactive。

    评论

报告相同问题?

问题事件

  • 创建了问题 2月20日

悬赏问题

  • ¥15 python的qt5界面
  • ¥15 无线电能传输系统MATLAB仿真问题
  • ¥50 如何用脚本实现输入法的热键设置
  • ¥20 我想使用一些网络协议或者部分协议也行,主要想实现类似于traceroute的一定步长内的路由拓扑功能
  • ¥30 深度学习,前后端连接
  • ¥15 孟德尔随机化结果不一致
  • ¥15 apm2.8飞控罗盘bad health,加速度计校准失败
  • ¥15 求解O-S方程的特征值问题给出边界层布拉休斯平行流的中性曲线
  • ¥15 谁有desed数据集呀
  • ¥20 手写数字识别运行c仿真时,程序报错错误代码sim211-100