当任何一组变量发生变化时,Svelte 执行函数

2024-01-10

In Svelte RealWord 应用程序 https://github.com/sveltejs/realworld/blob/master/src/routes/_components/ArticleList/index.svelte有这样的事情:

$: query && getData();

当页面大小或其他查询参数发生变化时,这会调用 REST API。

我在列出实体时也有类似的情况,并且这样做:

 $: activePage && sort && pageSize && getData();

这一切都运行良好(尽管 && 是一个奇怪的结构,说我想执行getData() when activePage, sort or pageSize变化。

使用这种方法,当您还想包含计算结果为 Falsy 的变量时,就会出现问题。

例如,添加searchQuery text:

let searchQuery = "";
$: searchQuery && activePage && sort && pageSize && getData();

现在反应性不起作用,因为searchQuery评估为false.

我们做得到:

$: activePage && sort && pageSize && getData();
$: searchQuery, getData();

但是这样 getData() 被调用了 2 次。

有人知道更好的方法吗?


您可以使用, and &&具有任意数量的变量和条件的语法

$: searchQuery, activePage && sort && pageSize && getData();
$: searchQuery, activePage, sort, pageSize, getData();

两者都是有效的,对于第二个变量,如果其中一个变量为假,则不会出现问题,而第一个变量允许您确保某些变量不是假的。

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

当任何一组变量发生变化时,Svelte 执行函数 的相关文章

随机推荐