Javascript 类型';元素';类型';中缺少以下属性;OfferOps';:id,名字,城市,价格,还有2个以上。TS2740

Javascript 类型';元素';类型';中缺少以下属性;OfferOps';:id,名字,城市,价格,还有2个以上。TS2740,javascript,reactjs,typescript,types,react-props,Javascript,Reactjs,Typescript,Types,React Props,我试图使用渲染元素数组,但我的组件中出现了此错误 类型“Element”缺少类型“OfferProps”中的以下属性:id、firstName、city、price和2个以上。TS2740 我的代码: OffersComponent import React from 'react'; import { OffersProps } from './types'; import { OfferComponent } from '../OfferComponent/OfferComponent';

我试图使用渲染元素数组,但我的组件中出现了此错误

类型“Element”缺少类型“OfferProps”中的以下属性:id、firstName、city、price和2个以上。TS2740

我的代码:

OffersComponent

import React from 'react';
import { OffersProps } from './types';
import { OfferComponent } from '../OfferComponent/OfferComponent';
import { OfferProps } from '../OfferComponent/types';

export const OffersComponent = ({ dataset }: OffersProps) /* I tried adding :Element[] here, but no luck*/ => dataset.map(
  ({
    id, firstName, city, price, image, description,
  }): OfferProps => (
    // Here's the error
    <OfferComponent id={id} firstName={firstName} city={city} price={price} image={image} description={description} />
  ),
);
import React from 'react';
import { OfferProps } from './types';

export const OfferComponent = ({ id, firstName, city, price, image, description }: OfferProps) => (
  <div>
    <div>{`${id}`}</div>
    <div>{firstName}</div>
    <div>{city}</div>
    <div>{`${price} pln`}</div>
    <img src={image} alt={description} />
    <div>{description}</div>
    ===============================
  </div>
);
报价组件

import React from 'react';
import { OffersProps } from './types';
import { OfferComponent } from '../OfferComponent/OfferComponent';
import { OfferProps } from '../OfferComponent/types';

export const OffersComponent = ({ dataset }: OffersProps) /* I tried adding :Element[] here, but no luck*/ => dataset.map(
  ({
    id, firstName, city, price, image, description,
  }): OfferProps => (
    // Here's the error
    <OfferComponent id={id} firstName={firstName} city={city} price={price} image={image} description={description} />
  ),
);
import React from 'react';
import { OfferProps } from './types';

export const OfferComponent = ({ id, firstName, city, price, image, description }: OfferProps) => (
  <div>
    <div>{`${id}`}</div>
    <div>{firstName}</div>
    <div>{city}</div>
    <div>{`${price} pln`}</div>
    <img src={image} alt={description} />
    <div>{description}</div>
    ===============================
  </div>
);

据我所知,这是因为我返回了一个元素数组,但是为什么添加
:Element[]
不能解决问题呢?还是我完全错了?

我认为您的组件返回类型有问题

尝试:

export const OffersComponent=({dataset}:OffersProps)=>dataset.map(
({
id,名字,城市,价格,图像,描述,
}) => (
//这是错误
),
);

是的,这很有效。唯一的问题是现在我得到了一个
Type'Element[]”缺少Type'Element的以下属性:Type,props,key TS2605
知道这是怎么回事吗?你能发布新的
OffersComponent
函数签名吗?我通过在
OffersComponent
之后添加
:function
来修复它。我在另一个答案中找到了它。不知道为什么,但它起作用了
export const OffersComponent = ({ dataset }: OffersProps) => dataset.map(
  ({
    id, firstName, city, price, image, description,
  }) => (
    // Here's the error
    <OfferComponent id={id} firstName={firstName} city={city} price={price} image={image} description={description} />
  ),
);