观察数组中当前值的变化

2024-05-05

每当它改变半径和中心时,我想监视每个项目,每当它改变时,我想 console.log 项目索引和值

let map = ref(null) map.value.circles是一个数组 当我使用此监视功能时,它仅在加载时显示一次值,我希望每次它在控制台中发生变化时都能看到它。我怎样才能做到这一点?

     watch(() => map.value, (currentValue) => {
        currentValue.circles.forEach((item) => {
          console.log(item)
        })
      },
    );

因此,当 item.circle.center.lat() 和 lng 更改时,我想控制台记录它,而不是每个项目。

现在每当我更新任何项目时,都不会记录任何内容。


默认情况下,Vue 对象(包括数组)仅在创建或替换时触发监视。为了观察数组/对象的突变,您需要包括deep选项 (deep: true).

您需要稍微修改您的手表,以便可以传递深度选项 - 我相信它最终会看起来像这样:

watch(() => map.value, 
  (currentValue) => {
    currentValue.circles.forEach((item) => {
      console.log(item)
    })
  },
  {deep: true}
);

Sources:

关于使用 Deep 的 Vue 3 文档 https://v3-migration.vuejs.org/breaking-changes/watch.html#overview

关于使用 watch 的 Vue 3 文档 https://v3.vuejs.org/api/computed-watch-api.html#watch

Vue 3 将 Deep 与 watch() 和 Composition API 结合使用 https://v3.vuejs.org/guide/reactivity-computed-watchers.html#watching-reactive-objects

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

观察数组中当前值的变化 的相关文章

随机推荐

  • 如何将json从android发送到php?

    为了将 json 从 android 发布到 php 我使用了 Volley 库StringRequest目的 StringRequest sr new StringRequest Request Method POST url new R
  • 如何按日期属性对对象数组进行排序?

    假设我有一个由几个对象组成的数组 var array id 1 date Mar 12 2012 10 00 00 AM id 2 date Mar 8 2012 08 00 00 AM 如何按日期元素从最接近当前日期和时间的日期开始对该数
  • require未定义nodejs

    尝试使用此 smartsheet api http smartsheet platform github io api docs javascript node js sample code http smartsheet platform
  • 具有多个参数的 JavaScript 函数

    我有一个将数组作为输入的函数 我如何修改它以使用变量参数和数组 例如我想要arrSum 1 2 3 arrSum 1 2 3 回来true即两者都应该返回 6 const arrSum arr gt arr reduce a b gt a
  • 处理 Cloud Run 容器关闭

    在编写 Cloud Run 服务时 我们开发一个容器来监听PORT用于处理传入 HTTP 请求的环境变量 容器的实例会启动并处理请求 然后在完成原始请求后存活一段时间 以防有更多请求到达 如果没有进一步的请求 GCP关闭容器 我在这方面有一
  • 查看登录设备

    我想查看Log在设备上 即System out println 我可以查看DDMS但如何在运行时在设备屏幕上查看APK文件 还有一个适用于 Android 的 Logcat 应用程序 code google com p android ra
  • 如何安装适用于 Windows C++ 的最新版本 OpenGL?

    我正在使用 Visual Studio 2010 运行 Windows 7 包含的 OpenGL 版本 include 是版本 1 1 我希望使用合理的当前版本 某种版本 3 或 4 我需要做什么才能达到该状态 OpenGL SDK 页面位
  • 在 x86 Intel VT-X 非根模式下,是否可以在每个指令边界传递中断?

    除了不将中断传送到虚拟处理器的某些正常指定条件 cli if 0 等 之外 客户机中的所有指令实际上都是可中断的吗 也就是说 当传入的硬件中断先传递给 LAPIC 然后传递给处理器时 据说会发生一些内部魔法 将其转换为虚拟中断给来宾 使用虚
  • Java 拖放图像并在拖动时显示图像缩略图

    我有一个带有图像节点的网格布局 我想在我的应用程序中添加 dnd 功能 例如 当我将图像节点拖放到目标 JPanel 时 进行一些操作 例如以原始大小显示 删除等 我已经实现了这与一种使用 Transferhandler 的方法和一种使用
  • 如何在 Jboss 7.1 中配置简单身份验证

    我正在从事由以下人员编写的项目纯jsps 脚本 不使用任何框架 jboss版本 jboss as 7 1 0 Final 我现在正在尝试在其上添加简单的身份验证 因此 当用户尝试浏览 jsp 时 比如说 http localhost myC
  • 只在一个文件上应用 git merge stategy 吗?

    当将一个分支合并到另一个分支时 可以定义合并策略 例如 git merge release X ours 当将发布分支中的内容合并到当前分支时 这会在全局范围内应用 我们的 策略 是否可以仅对一个特定文件应用此策略 例如 git merge
  • 如何将javascript变量放入php echo [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我想将 JavaScript 变量添
  • 模拟器的窗口比手机屏幕太大

    我做了一个小例子来测试我的Android环境 当我在AVD上启动执行时 它看起来太大了 就好像它是平板电脑屏幕一样 如何调整大小使其看起来像手机屏幕 Android Studio 2 2更新后就没有了Emulator Tab in Edit
  • Firefox 中缺少表格边框

    我有一个包含数据的表格 当我在 Firefox 中查看它时 某些边框没有显示 请参阅随附的屏幕截图 在任何其他浏览器中都不会发生这种情况 在 Firefox IE Safari 和 Chrome 中测试 知道为什么以及如何解决它吗 我使用样
  • Tuple.Create() 与 new Tuple

    考虑以下表达式 new Tuple
  • iOS CorePlot如何安装

    我正在尝试在我的一个 iOS 项目中使用 CorePlot 但即使按照说明并在网上查找后 我仍无法正确安装该框架 我觉得文档没有发展 不再描述安装框架的正确方法 我跟着这些说明 https code google com p core pl
  • yup - 逗号后允许两位数字,小数的最小值和最大值

    const validationSchema yup object amount yup number positive min 5 minimum 5 max 10 maximum 10 如何添加对逗号后两位数字的小数的验证 像这样解决
  • 资产预编译正常,但尝试获取文件时出现 404

    好的 编译我的资产工作正常 但是当我运行时 thin start e production 我的 javascript 或 css 都没有加载 我的浏览器也取消了获取我的资产的请求 我不确定为什么会这样 但我怀疑是因为它认为对它们进行了 4
  • 在云服务器中运行 python 脚本的最简单方法是什么?

    我有一个网络爬行 python 脚本 需要几个小时才能完成 并且无法在我的本地计算机上完整运行 有没有一种方便的方法可以将其部署到简单的 Web 服务器 该脚本基本上将网页下载到文本文件中 如何最好地实现这一点 谢谢 既然你说性能是一个问题
  • 观察数组中当前值的变化

    每当它改变半径和中心时 我想监视每个项目 每当它改变时 我想 console log 项目索引和值 let map ref null map value circles是一个数组 当我使用此监视功能时 它仅在加载时显示一次值 我希望每次它在