You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Next.js TypeScript组件传参失败:MyOrders无法向MyOrderItem传值

问题分析与修复方案

你的代码存在两个核心问题导致无法传值:

  • 属性名称不匹配:MyOrders组件传递的是order属性,但MyOrderItem的Props接口定义的是product,TypeScript会因属性不匹配抛出类型错误。
  • 未接收传入的Props:MyOrderItem组件没有声明接收props参数,无法访问父组件传递的数据。

修复方案(二选一即可)

方案1:统一使用order作为属性名

修改MyOrderItem组件的Props接口并接收props:

import { MyOrderItemsData } from '@/types/MyOrderItemsData';
import { Box } from '@mui/material';
import { FC } from 'react';

// 修正Props接口的属性名称为order
interface Props {
  order: MyOrderItemsData;
  index?: number;
}

// 接收props参数并使用
const MyOrderItem: FC<Props> = ({ order, index }) => {
  return (
    <Box>
      <h1>{order.productName}</h1>
      <p>订单ID: {order.orderId}</p>
      <p>价格: {order.price}</p>
    </Box>
  );
};

export default MyOrderItem;

MyOrders组件的代码无需修改,保持原有的order={order}传递即可。


方案2:统一使用product作为属性名

修改MyOrders组件中传递的属性名,同时在MyOrderItem中接收props:

MyOrders组件修改部分:

{orders.map((order, index) => (
  <MyOrderItem
    key={order.orderId} 
    index={index} 
    product={order} // 将order改为product
  />
))}

MyOrderItem组件修改部分:

import { MyOrderItemsData } from '@/types/MyOrderItemsData';
import { Box } from '@mui/material';
import { FC } from 'react';

interface Props {
  product: MyOrderItemsData;
  index?: number;
}

// 接收product属性并使用
const MyOrderItem: FC<Props> = ({ product }) => {
  return (
    <Box>
      <h1>{product.productName}</h1>
      <p>卖家: {product.sallerName}</p>
      <p>预计送达: {product.deliveryTime}</p>
    </Box>
  );
};

export default MyOrderItem;

内容的提问来源于stack exchange,提问作者Muhammad Mehedi Hasan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 23:35:51