next.js 在react js中使用带有setstate的泛型,并使用typescript返回字符串而不是数字

jobtbby3  于 2023-03-18  发布在  React
关注(0)|答案(1)|浏览(102)

我试图通过传递setstate钩子的类型来设置状态onChange事件。下面是我的setState:

const [payer, setPayer] = useState<Number>(0);

这是我的收音机设定器

const radioSetter = <T,>(
    e: React.FormEvent<HTMLInputElement>,
    setter: React.Dispatch<React.SetStateAction<T>>
  ) => {
    console.log(typeof (e.currentTarget.value as T));
    setter(e.currentTarget.value as T);
  };

这是我的意见

<input
                      type="radio"
                      name="payer"
                      value={0}
                      checked={payer === 0}
                      onChange={(event) => radioSetter<Number>(event, setPayer)}
                    />

radioSetter函数的控制台日志是字符串而不是数字.当在onchange事件中调用radioSetter函数时,我如何传递setState的类型?

qxgroojn

qxgroojn1#

首先,使用number而不是Number(查看为什么使用here):

const [payer, setPayer] = useState<number>(0);

然后使用valueAsNumber代替value,或者将字符串转换为数字,
x一个一个一个一个x一个一个二个一个x一个一个三个一个
我不会使用像radioSetter这样的函数,因为你不可能知道在运行时应该传递给setter什么类型,而且它看起来也没有做什么。

相关问题