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

React+TypeScript中无法将对象作为Props传递给组件问题

问题分析与解决办法

核心问题1:Review组件未正确导出

你提供的Review组件代码片段缺少导出语句,导致AddressForm组件导入的Review实际是undefined,渲染时无法接收传递的data props,最终打印出undefined。

核心问题2:useEffect未监听数据变化

你的useEffect依赖数组为空,只会在组件挂载时执行一次,后续输入框更新shipping状态后,data props更新但useEffect不会重新执行,无法看到最新数据。


修正后的Review组件代码

import { useEffect } from 'react';

interface ShippingProps {
  data: {
    firstname: string;
    lastname: string;
    address: string;
    city: string;
    state: string;
    postalcode: string;
    country: string;
  };
}

// 导出组件,确保AddressForm能正确导入
export default function Review({data}: ShippingProps) {

  // 添加data到依赖数组,监听数据变化
  useEffect(() => {
    console.log(data);
  }, [data])

  // 补充组件返回的JSX,用于展示数据
  return (
    <div>
      <h3>Shipping Review</h3>
      <p>Name: {data.firstname} {data.lastname}</p>
      <p>Address: {data.address}, {data.city}, {data.state} {data.postalcode}, {data.country}</p>
    </div>
  )
}

额外验证点

  • 确认AddressForm中的import Review from './Review';路径正确,与Review组件文件位置匹配。
  • 测试时可直接在Review组件函数体中打印console.log(data),无需依赖useEffect,更直观验证props是否传递成功。

内容的提问来源于stack exchange,提问作者nabs

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 16:55:24