svelte - Svelte 将参数添加到派生状态并保持其反应性
问题描述
在这个例子中,$derivedValue
是反应式的;如果myArray
在索引 3 处更改,它也会自动更改。
App.svelte
<script>
import { myArray, derivedValue } from './store';
</script>
<h1>{$myArray}</h1>
<h1>{$derivedValue}</h1>
store.js
import {derived, writable} from 'svelte/store';
export const myArray = writable([6, 7, 8, 9, 10]);
export const derivedValue = derived(myArray, value => value[3]);
我想创建一个反应式吸气剂,如下所示:
export const derivedValue = index => derived(myArray, value => value[index]);
当然,在这种情况下derivedValue
是一个函数,不再可订阅。有没有办法用参数创建这样一个可订阅的反应派生值?
解决方案
derivedValue
确实是一个函数,但它返回一个商店。你会像这样使用它:
<script>
import { myArray, derivedValue } from './store';
const first = derivedValue(0);
</script>
<h1>{$myArray}</h1>
<h1>{$first}</h1>
如果您希望此索引也具有反应性,则可以反应性地生成存储:
$: current = derivedValue(index)
并仍将其用作常规商店:$current
推荐阅读
- networking - telnet HTTP/1.1 400 错误请求的问题
- loss - TrianLoss 和 Vla 损失的区别
- python - Django ManyToMany Field admin 显示最高值
- vagrant - 使用 Vagrant/PhpStorm 进行 Xdebug 配置
- php - Clickhouse 和 Symfony 5
- flutter - 如何在相同语言但不同国家的颤振中使用l10n的@@locale标签
- reactjs - 路由“登录”的组件必须是反应组件
- unix - Unix 在字符串中添加双引号
- sql - SQL Server:如何在按用户分组的日期范围内选择第一个和最后一个值
- sql-server - SQL 解决没有可重复读取或 TABLOCKX 的左连接问题