Qwik中为input的onInput$属性设置函数报错,求解决方案
Qwik中input元素onInput$绑定函数报错的解决方法
你遇到的Code(25): Invalid JSXNode type. It must be either a function or a string.错误,主要有两个常见原因,对应解决方法如下:
1. 函数名拼写不匹配
你的代码里定义的函数是onInput,但绑定到onInput$的却是handleInput,先把函数名统一:
function handleInput(ev: Event) { // 执行你的逻辑 } <input onInput$={handleInput} />
2. 未遵循Qwik的事件处理规则
Qwik要求事件处理函数必须是可序列化的,如果函数内需要访问组件状态(比如useSignal、useStore的值),必须用$()包装函数,让Qwik能正确追踪依赖:
import { $ } from '@builder.io/qwik'; // 用$()包装事件处理函数 const handleInput = $((ev: InputEvent) => { // 正确获取输入框的值 const inputValue = (ev.target as HTMLInputElement).value; // 这里可以安全操作组件状态 }); <input onInput$={handleInput} />
额外提示:建议将事件参数类型指定为InputEvent而非通用Event,这样能获得更精准的类型提示,避免类型断言出错。
内容的提问来源于stack exchange,提问作者Kristóf Göncző
相关产品推荐
相关产品推荐

