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
如何很好地理解这种流程?
答案 0 :(得分:0)
您的currentPlayer
属性为undefined
,这意味着您实际上正在执行
var playerProfile = data.currentPlayer.playerProfile;
哪个会破坏,因为data.currentPlayer
不存在。 (是undefined
)
在第二个示例中,您要为currentPlayer
创建默认值,这意味着currentPlayer
如果undefined
将是{}