提问人:Mei Olya 提问时间:9/16/2022 最后编辑:jsejcksnMei Olya 更新时间:9/16/2022 访问量:372
在 fresh 中输入输入时无法更新状态
Impossible to update state while typing in input in fresh
问:
我是 Deno 的 Fresh 新手,我正在尝试在输入中键入文本时更新 Preact 组件的状态。
export default function Calculous(props: CalculousProps) {
const [input, setInput] = useState<string>('');
const onSubmit = (event: h.JSX.TargetedEvent<HTMLFormElement>) => {
event.preventDefault();
console.log(input);
}
useEffect(() => {
console.log(input);
}, [input])
return (
<form onSubmit={onSubmit}>
<input type="text" value={input} onChange={(e) => setInput(e.target.value)} />
<button disabled={isNaN(Number(input))} type="submit">Next</button>
</form>
);
}
但是,当我在组件上键入文本时,它不会重新渲染,直到我取消对输入的焦点。你知道如何触发重新渲染来更新我的状态吗?
感谢您的帮助
答:
1赞
jsejcksn
9/16/2022
#1
将 Preact 与输入元素一起使用时,通常应使用 onInput
而不是 onChange
。
React 选择将事件侦听器回调属性的名称用于更改
和输入
事件。在这种情况下,Preact 的 API 更具语义性,并且更符合规范。onChange
评论
0赞
Mei Olya
9/16/2022
好好使用函数,非常感谢onInput
评论