我有这个代码
export interface Y{
title: string;
name: string;
}
const [x, setX] = useState<Y>(Object);
但我的朋友们说这是一个坏主意。
为什么使用这个 useState(Object) 是一个坏主意?
嗯,我觉得奇怪的是你通过了Object
用于 useState 钩子。
export interface Y{
title: string;
name: string;
}
const [x, setX] = useState<Y>();
在这种情况下 x 的类型是Y | undefined
,这更好,因为现在我们知道 x 是空的。
Passing Object
正如你所做的那样会让打字稿高兴,但现在你欺骗了自己,因为打字稿不会保护你。
根据情况,我建议采用第一种路线并将 useState 留空,或硬编码对象结构,例如
const [x, setX] = useState<Y>({title: '', name: ''});
如果问题是使用 useReducer 还是 useState - 我认为这完全取决于您更改对象的频率。如果逻辑足够简单,使用 useReducer 可能有点大材小用。另外,不要忘记 useState 只是 useReducer 钩子的包装器,据我所知。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)