当变量组中的任何变量发生变化时,svelte执行函数 [英] Svelte execute function when any of group of variables changes
本文介绍了当变量组中的任何变量发生变化时,svelte执行函数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
在Svelte RealWord App中有这样的内容:
$: query && getData();
页面大小或其他查询参数更改时调用REST API。
我对上市实体也有类似的情况,并做到了:
$: activePage && sort && pageSize && getData();
这一切都运行得很好(尽管&;&;是一个奇怪的构造,表示我要在activePage
、sort
或pageSize
更改时执行。
使用此方法时,如果还希望包含计算结果为Falsy的变量,则会出现问题。
示例,添加searchQuery
文本:
let searchQuery = "";
$: searchQuery && activePage && sort && pageSize && getData();
现在反应性不起作用,因为searchQuery
计算为false
。
我们可以做到:
$: activePage && sort && pageSize && getData();
$: searchQuery, getData();
但使用此方法,getData()被调用2次。
有人知道解决此问题的更好方法吗?
推荐答案
您可以将,
和&&
语法用于任意数量的变量和条件
$: searchQuery, activePage && sort && pageSize && getData();
$: searchQuery, activePage, sort, pageSize, getData();
都是有效的,使用第二个变量不会出现问题,如果其中一个变量是假的,而第一个变量允许您确保某些变量不是假的。
这篇关于当变量组中的任何变量发生变化时,svelte执行函数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文