如何在SolidJS中交换两个Signal的值?
实现Signal值交换的swapSignals函数
要完成两个Signal的值交换,核心是先缓存其中一个Signal的当前值,避免更新过程中丢失原始数据。具体实现如下:
const [a, setA] = createSignal(50) const [b, setB] = createSignal(100) function swapSignals() { // 缓存a的当前值 const tempValue = a(); // 将a更新为b的当前值 setA(b()); // 将b更新为缓存的a的原始值 setB(tempValue); }
关键说明
- Signal的当前值需要通过调用getter函数(比如
a())获取,不能直接引用变量a。 - 必须先缓存其中一个值,若直接执行
setA(b())后再执行setB(a()),此时a()已经是更新后的值,无法完成正确交换。
内容的提问来源于stack exchange,提问作者user15023244
相关产品推荐
相关产品推荐

