0

我有一个字符串类型状态:

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}
/>

这是我的错误:

在此处输入图像描述

谢谢你们。

4

1 回答 1

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}
     />
于 2021-04-28T10:11:31.393 回答