繁体   English   中英

ES6,JavaScript。 声明const,在销毁分配中未定义

[英]ES6, Javascript. Declare const, undefined in destructuring assignment

const Profile = () => (
  <Data data={CURRENT_PLAYER_DATA}>
    {({
      data: {
        currentPlayer: { playerProfile }
      }
    }) => <div>{playerProfile && playerProfile.name}</div>}
  </Data>
);

通过上面的代码,我得到了: playerProfile of undefined!

const Profile = () => (
  <Data data={CURRENT_PLAYER_DATA}>
    {({ data: { currentPlayer: { playerProfile = {} } = {} } = {} }) => (
      <div>{playerProfile && playerProfile.name}</div>
    )}
  </Data>
);

使用上面的代码,它可以工作,但是我不知道为什么。

而且我还需要避免类似的事情:

playerProfile && playerProfile.name

如何很好地理解这一流程?

您的currentPlayer属性undefined ,这意味着您实际上在做

var playerProfile = data.currentPlayer.playerProfile;

它将中断,因为data.currentPlayer不存在。 undefined

在第二个示例中,您将为currentPlayer创建一个默认值,这意味着currentPlayer如果undefined将为{}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM