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(使用前将#替换为@)