You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React TypeScript项目中如何更新Preact Signal的值?

在ReactTS项目中更新Preact Signal值的解决方案

你遇到的TypeScript错误是因为导入了@preact/signals核心包的signal,而在React环境下需要使用专门适配的版本。以下是两种解决方法:

1. 修正导入路径(推荐)

React项目中应从@preact/signals/react导入signal,这个适配包会自动处理React环境下的类型与响应式逻辑:

import { signal } from "@preact/signals/react";

const name = signal<string>("John Oliver");

console.log(name.value); // "John Oliver"
name.value = "Jon Stewart"; // 正常赋值,无TS错误

2. 使用mutate方法(核心包兼容方案)

若必须使用@preact/signals核心包,可通过mutate方法修改值:

import { signal } from "@preact/signals";

const name = signal<string>("John Oliver");
name.mutate(() => "Jon Stewart");

优先选择第一种方案,因为@preact/signals/react是官方为React项目提供的适配层,能更好地配合React的渲染机制。

内容的提问来源于stack exchange,提问作者Amrovic

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.24 07:53:16