React 无法使用地图访问道具
2020-05-05
150
3个回答
提供的属性
tracks
为
undefined
或
null
。为了防止这种情况发生错误,您有几种选择
- 使用 defaultProps
class YourComponent extends React.Component {
...
}
YourComponent.defaultProps {
tracks: [],
}
- 条件渲染
{this.props.tracks && this.props.tracks.map(
...
)}
- 设置默认值
{(this.props.tracks || []).map(
...
)}
最后一个选项可能是最没用的选项,因为
tracks
属性在所有其他位置都是未定义的。
Auskennfuchs
2020-05-05
尝试一下
{this.props.tracks &&
{this.props.tracks.map(track => {
return <Track track={track} key={track.id}/>
})}
}
Jesus Erwin Suarez
2020-05-05
如果通过 API 加载轨道,则组件安装和 prop 可用之间可能会有延迟。另一种选择是将 tracks prop 的默认值设置为空数组。这将防止在数据加载时显示错误。
YourComponent.defaultProps = {
tracks: []
};
Robert Higdon
2020-05-05