反应钩子和打字稿-类型'从不'属性'***'不存在

时间:2018-12-03 17:03:40

标签: reactjs typescript react-hooks

我从很多角度遇到了这个问题,目前我的代码看起来像这样,并且出现以下错误:

  

类型“从不”的属性“相册”不存在

我正在使用React钩子,但是从data对象更新为useState时出现错误。 data具有属性albums,我不确定该如何定义或在何处执行。

import React, { useState } from 'react';

interface ArtistProps {
   artistName: string,
}


const Artist: React.SFC< ArtistProps > = ({ artistName }) => {

    const [data, setData] = useState(null);

    return (
        <>
            <p>{artistName)}</p> // this is fine
            <p>{data.albums}</p> // error here
        </>
    );
}

1 个答案:

答案 0 :(得分:3)

尝试一下:

const [data, setData] = useState<null | {albums: any}>(null);

然后使用data变量,如

data!.albums 

!是让打字稿知道您确定该值不是null。但更好的方法是显式检查null的值,例如data ? data.albums : 'no data'

P.S。代替{albums: any}添加适当的界面。