我试图通过传递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的类型?
1条答案
按热度按时间qxgroojn1#
首先,使用
number
而不是Number
(查看为什么使用here):然后使用
valueAsNumber
代替value
,或者将字符串转换为数字,x一个一个一个一个x一个一个二个一个x一个一个三个一个
我不会使用像
radioSetter
这样的函数,因为你不可能知道在运行时应该传递给setter什么类型,而且它看起来也没有做什么。