Reactjs 为什么传递给子组件的对象道具是';未定义';但原语起作用了吗?

Reactjs 为什么传递给子组件的对象道具是';未定义';但原语起作用了吗?,reactjs,redux,react-redux,Reactjs,Redux,React Redux,我很难理解为什么子组件没有正确地接收从父组件的道具传递的对象 家长: 从“React”导入React; 从“../stock_show/stock_header”导入StockSummary; const OwnedListItem=({ownedStock})=>( 股票代码:{ownedStock.Ticker}//works //抛出“未定义”错误 ); 导出默认OwnedListItem将此更改为对象可以作为道具传递给儿童。听起来像是ownedStock道具可能是对象的对象,而不是简单

我很难理解为什么子组件没有正确地接收从父组件的道具传递的对象

家长:

从“React”导入React;
从“../stock_show/stock_header”导入StockSummary;
const OwnedListItem=({ownedStock})=>(
股票代码:{ownedStock.Ticker}//works
//抛出“未定义”错误
);
导出默认OwnedListItem
将此
更改为

对象可以作为道具传递给儿童。听起来像是
ownedStock
道具可能是对象的对象,而不是简单的对象。这将解释为什么对象键上的
.map()
可以工作。我猜,
ownedStock
是这样的:

var ownedStock = {
  ABAX: {
    ticker: "GOOG",
    quote: {
      avgTotalVolume: 20
    }
  }
};
如果您不想
.map()
覆盖
ownedStock
,因为您绝对肯定
ownedStock
对象中只有一个项目,并且您知道它是关键,您可以这样做:

var ownedStock={
ABAX:{
股票代码:“GOOG”,
引述:{
平均总体积:20
}
}
};
const OwnedListItem=({ownedStock})=>(
股票代码:{ownedStock.Ticker}//works
);
const StockSummary=({quote})=>(
库存汇总表
平均总体积
{quote.avgTotalVolume}
)
ReactDOM.render(,document.getElementById(“app”)


你能给我们看一下
quote
对象吗?我想你需要使用
这个.props.quote…
添加了“quote”对象。谢谢,谢谢。这清除了错误,但未将“quote”中的数据传递给子级。我猜你会说,它被呈现为“空”。你能检查并粘贴子组件的呈现标记吗?我在DevTools中复制了呈现的HTML。让我知道这是否是您正在寻找的。您能将您的子组件更改为const StockSummary=({quote})=>{console.log(quote)return(//your makrup)}并查看控制台中记录了什么。正如您所看到的,对象没有被分解。谢谢Brett。我添加了一些额外的信息。你介意再看一眼吗?谢谢