React Hooks with typescript:属性“数据”在类型上不存在

Kev*_*sus 5 typescript reactjs react-hooks

我有一个毫无意义的错误,我正在用钩子输入我的状态的值,但他说错误是不同的类型。

已经尝试过使用空数组,甚至是带有一些数据的数组,并且总是错误相同。

import React, { useState } from 'react';
import { Row, Col } from 'config/styles';
import Bed from './Bed';

interface DataTypes {
  date: string;
  value: number;
}

function Beds(): JSX.Element {
  const { data, setData } = useState<DataTypes[]>([]);

  return (
    <>
      <Row>
        {data.map((d, i) => (
          <Col key={i} sm={16.666} lg={10}>
            <Bed {...d} />
          </Col>
        ))}
      </Row>
    </>
  );
}

export default Beds;
Run Code Online (Sandbox Code Playgroud)

错了:

TypeScript error in /Users/keven/Documents/carenet/orquestra-frontend/src/Beds/index.tsx(11,11):
Property 'data' does not exist on type '[DataTypes[], Dispatch<SetStateAction<DataTypes[]>>]'
Run Code Online (Sandbox Code Playgroud)

小智 15

你应该使用 const [ data, setData ] 而不是 const { data, setData }


lau*_*ent 7

它应该是一个数组,而不是一个对象:

const [data, setData] = useState<DataTypes[]>([]);
Run Code Online (Sandbox Code Playgroud)

您在错误消息中有这样的指示:

type '[DataTypes[], Dispatch<SetStateAction<DataTypes[]>>]'
Run Code Online (Sandbox Code Playgroud)

  • 无论类型如何,错误始终相同。类型“[[],Dispatch&lt;SetStateAction&lt;[]&gt;&gt;]”上不存在属性“data”。 (4认同)