在 Svelte RealWord App 中有这样的东西:
$: query && getData();
当页面大小或其他查询参数更改时,这会调用 REST API。我对上市实体有类似的情况,并且会这样做:
$: activePage && sort && pageSize && getData();
这一切都运行良好(尽管 && 是一个奇怪的结构,表示我想在 getData()
、 activePage
或 sort
更改时执行 pageSize
。当您还想包含评估为 Falsy 的变量时,使用这种方法会出现问题。
示例,添加
searchQuery
文本:let searchQuery = "";
$: searchQuery && activePage && sort && pageSize && getData();
现在 react 性不起作用,因为 searchQuery
评估为 false
。我们可以完成这个:
$: activePage && sort && pageSize && getData();
$: searchQuery, getData();
但是有了这个 getData() 被调用了 2 次。有人知道更好的方法吗?
最佳答案
您可以将 ,
和 &&
语法与任意数量的变量和条件一起使用
$: searchQuery, activePage && sort && pageSize && getData();
$: searchQuery, activePage, sort, pageSize, getData();
都是有效的,如果其中一个变量是假的,那么第二个就不会有问题,而第一个允许您确保某些变量不是假的。
关于当任何一组变量发生变化时,Svelte 执行函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57304022/