React组件类型错误:useRef需设置何种类型以修复报错?
修复React TypeScript组件中的类型错误
你遇到的这个类型错误不是useRef的类型问题,根源在于useState的状态类型未正确声明:
你调用useState()时没有指定初始值或显式类型,TypeScript会自动推断enteredPlayerName的类型为undefined,因此setEnteredPlayerName只能接收undefined类型的参数。但playerName.current.value是字符串类型,两者类型不兼容,才触发了这个错误。
修复方案(二选一即可)
方案1:给useState设置初始值(推荐)
直接传入空字符串作为初始状态,TypeScript会自动推断状态类型为string:const [enteredPlayerName, setEnteredPlayerName] = useState("");方案2:显式声明useState的类型
如果需要初始状态为undefined,可以显式指定状态类型为string | undefined:const [enteredPlayerName, setEnteredPlayerName] = useState<string | undefined>();
额外说明
你的useRef<HTMLInputElement>(null)类型声明是完全正确的,不需要修改——它已经准确约束了ref指向的是HTML输入元素。
内容的提问来源于stack exchange,提问作者Quantum-script
相关产品推荐
相关产品推荐

