【发布时间】:2021-12-01 08:25:31
【问题描述】:
所以我在具有这种类型的反应组件中使用的打字稿中有对象:
export type DataInfoTypes<dataType> = {
data: dataType | null;
loading: boolean;
error: boolean;
};
假设会有“dataType”(应该没关系,只是一个字符串对象):
{[key in string]: string}
然后当我在 React 组件中使用这个数据时,我检查 object.data 是否不为空:
if (!materials.data || materials.loading) {
return <DataLoading />;
}
然后在我的返回函数中,当我引用数据时似乎还可以:
<Flex alignItems="center" direction="column">
<Text>{materials.data["somekey"]}</Text>
<VStack w="100%" ....
不过几行下面我有一个数组映射方法(在同一个组件中,相同的返回):
<VStack w="100%" align="center">
{sources.map((matKey: string, index: number) => {
return <Text key={index}>{materials.data["somekey"]}</Text>
}
</VStack>
我得到这个错误:
对象可能是“空”。 TS2531
关于如何解决此问题或原因是什么的任何想法?
(如果可能,请排除所有 tsignore 解决方案)
非常感谢大家的回复。
【问题讨论】:
-
什么对象可能为空?材料.data["somekey"]?
-
只是材料.data
标签: javascript reactjs typescript react-typescript