我有一个轨道道具,具有以下定义:
propTypes: { track: React.PropTypes.shape({ cover: React.PropTypes.string,title: React.PropTypes.string,artist: React.PropTypes.string }) }
如果未定义,我希望track.cover获取默认值:
getDefaultProps: function() { return { track: { cover: 'placeholder.png' } } }
有什么机会我可以在视图层面上做到这一点吗?
getDefaultProps是否进行深度合并?
或者我需要在模型级别处理这个问题?
谢谢
getDefaultProps不会将传递的属性值与指定的返回值合并.如果该属性不存在,React将使用getDefaultProps返回的对象来初始化组件实例.
下面的代码例如产生:
Test Cover and
码:
var TrackItem = React.createClass({ render: function() { var track = this.props.track; return (<div>{track.cover} and {track.artist}</div>); },getDefaultProps: function() { return { track: { artist: 'def artist' } } } }); var track = { cover: 'Test Cover' }; React.render(<TrackItem track={ track } />,mountNode);
另请注意,getDefaultProps中返回的对象在组件的所有实例(reference)之间共享.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。