我有一个字符串类型状态:
const [name, setName] = React.useState<string>("");
还有一个验证长度函数,我在处理第二个参数“值”时遇到了问题,意图是 React setState 类型:
const validateStringLength = (e: React.ChangeEvent<HTMLInputElement | HTMLTextAreaElement>, value: React.SetStateAction<string>) => {
if (e.currentTarget.value.length <= 47) {
setName(e.currentTarget.value);
}
};
这是我的输入:
<Input
onChange={(e) => validateStringLength(e.target.value, setName(name)}
value={name}
/>
这是我的错误:
谢谢大家。
答案 0 :(得分:0)
//value type changes
const validateStringLength = (
e: React.ChangeEvent<HTMLInputElement | HTMLTextAreaElement>,
value: **React.Dispatch<React.SetStateAction<string>>**
) => {
if (e.currentTarget.value.length <= 47) {
value(e.currentTarget.value);
}
}
//setName doesn't receive parameters
<Input
onChange={(e) => validateStringLength(e, setName)}
value={name}
/>