这是我的页面
import {
InferGetServerSidePropsType,
GetServerSideProps
} from 'next'
import ProductList from '../../component/product/ProductList'
export interface Item {
title: string
price: number
}
const products = ({
data,
}: InferGetServerSidePropsType<typeof getServerSideProps>) => {
return (
<div>
<ProductList data={data} />
</div>
)
}
export const getServerSideProps:GetServerSideProps = async (context: any) => {
let res = await fetch('/getAllProduct', {
method: 'get',
})
const response: Array<Item> = await res.json()
return {
props: {
data: response,
},
}
}
export default products
这是我的ProductList组件
import { Item } from '../../pages/products/index'
const ProductList = ({ data }: Array<Item>) => {
const renderData = () => {
return data.map((i,index) => {
return <div key={index}>{i}</div>
})
}
return <div></div>
}
export default ProductList
在我的ProductList组件中,我得到了错误:属性数据不存在于类型项上。
我错过了什么?
发布于 2021-09-04 12:33:53
问题是您试图将一个数组分解为一个对象。
您需要将其更改为:
const ProductList = ([ ...data ]: Array<Item>) => {
则data
将为Item[]
类型
https://stackoverflow.com/questions/69055090
复制相似问题