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
相关产品推荐
相关产品推荐

