测试地址
https://play.vuejs.org/#eNp9Us+LEzEY/Vc+cuqypT9QL7Ud/EEPelBRj...
场景如下
当我的 水温>=50 度
或者 水位>=5
的时候
要向后端发送一个请求
bug 复现步骤
官方不是说 watchEffect 能收集到多个依赖吗?
但是对于有多个依赖项的侦听器来说,使用 watchEffect() 可以消除手动维护依赖列表的负担
借用 @jsdeferred 大佬的回复
每次执行完callback后都会清除此轮中没有用的依赖,height因为条件短路他的getter没有被执行导致他被清除掉不在当作是依赖,后面他的变更也不会使callback执行了
watchEffect
在 Vue 3 中确实可以自动收集依赖,并且当这些依赖发生变化时重新运行效应函数。但是,为了使其正常工作,你需要确保你正在访问的响应式数据在效应函数内部被正确地读取。
从你提供的测试地址来看,问题可能在于你是如何在 watchEffect
中使用 waterTemp
和 waterLevel
的。你需要确保在 watchEffect
的回调函数中直接访问这些响应式属性,这样 Vue 就可以追踪它们的变化。
以下是一个简化的示例,演示了如何在 watchEffect
中正确使用多个依赖:
import { ref, watchEffect } from 'vue';export default { setup() { const waterTemp = ref(0); const waterLevel = ref(0); const count = ref(0); watchEffect(() => { if (waterTemp.value >= 50 || waterLevel.value >= 5) { // 发送请求到后端 count.value++; } }); // 假设这是处理水温变化的函数 function handleWaterTempChange(newValue) { waterTemp.value = newValue; } // 假设这是处理水位变化的函数 function handleWaterLevelChange(newValue) { waterLevel.value = newValue; } return { waterTemp, waterLevel, count, handleWaterTempChange, handleWaterLevelChange, }; },};
在上面的代码中,waterTemp
和 waterLevel
是响应式引用,当它们的值变化时,watchEffect
会自动重新运行。在 watchEffect
的回调函数中,我们直接访问了 waterTemp.value
和 waterLevel.value
,这样 Vue 就可以追踪这两个依赖。
请检查你的代码,确保你是以这种方式使用 watchEffect
的。如果你仍然遇到问题,请提供更多的代码上下文,以便我能更精确地帮助你解决问题。
Maven将使用其最近的WINS策略自动解决依赖关系冲突,在这种情况下,它将在结果: [INFO]-(commons-collections:commons-collections:jar:2.1:compile-因与2.0冲突而省略) 在本例中,如果选择commons-collections:2.1,我将有一个备用依赖关系树,可能包含多个其他依赖关系。 我目前正在做的工作是识别与其他依赖项有冲突
我正在纠结于捕获最后一组--使用我的正则表达式,只有第一行匹配模式,而不是其他两行。如果我将正则表达式更改为,则所有3行都匹配,但第一行捕获不成功(我只获得1组,而不是2组和)。 如何编写这个正则表达式,使所有行都有5个匹配组?
本文向大家介绍JSON.parse 捕获异常的正确方法,包括了JSON.parse 捕获异常的正确方法的使用技巧和注意事项,需要的朋友参考一下 捕获无效JSON解析错误的最佳方法,是将对JSON.parse的调用放在try / catch块中。 示例
无法确定任务“:app:processDebugResources”的依赖项。 无法解决配置的所有任务依赖关系: app: dedegRuntimeClasspath。无法解决com.facebook.android: facebook登录:[5,6)。 所需:项目:应用程序 尝试:使用--stack跟踪选项运行以获取堆栈跟踪。使用--info或--debug选项运行以获取更多日志输出。运行--c
问题内容: 当我输入command go build时,我有一个项目具有来自bitbucket上私人存储库的多个依赖项。我得到这个错误 无法识别的导入路径“ bitbucket.xxx.xx / xx / x” x509:证书由未知授权机构签名 我已经尝试了几种方法,例如添加令牌 git config –global http.extraheader令牌 配置为ssh git config –gl
我是一名新的Android学习者,我正在为语言翻译制作我的第一个Android应用程序。在添加了一些依赖项之后,我遇到了一些问题。我该怎么解决这个问题? Gradle同步失败:无法解决配置的所有依赖项: app: dedegRuntimeClasspath。无法确定android.arch.lifecycle的工件: livedata: 1.1.1:脱机模式下没有缓存版本有关详细信息,请参阅IDE