就像在 React Hooks 中一样,给初始值一个空对象

2024-01-22

我有这个代码

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(使用前将#替换为@)

就像在 React Hooks 中一样,给初始值一个空对象 的相关文章

随机推荐