reactjs – React:嵌套的defaultProps深度合并

前端之家收集整理的这篇文章主要介绍了reactjs – React:嵌套的defaultProps深度合并前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个轨道道具,具有以下定义:
  1. propTypes: {
  2. track: React.PropTypes.shape({
  3. cover: React.PropTypes.string,title: React.PropTypes.string,artist: React.PropTypes.string
  4. })
  5. }

如果未定义,我希望track.cover获取默认值:

  1. getDefaultProps: function() {
  2. return {
  3. track: {
  4. cover: 'placeholder.png'
  5. }
  6. }
  7. }

有什么机会我可以在视图层面上做到这一点吗?
getDefaultProps是否进行深度合并?
或者我需要在模型级别处理这个问题?

谢谢

getDefaultProps不会将传递的属性值与指定的返回值合并.如果该属性不存在,React将使用getDefaultProps返回的对象来初始化组件实例.

下面的代码例如产生:

  1. Test Cover and

码:

  1. var TrackItem = React.createClass({
  2. render: function() {
  3. var track = this.props.track;
  4. return (<div>{track.cover} and {track.artist}</div>);
  5. },getDefaultProps: function() {
  6. return {
  7. track: {
  8. artist: 'def artist'
  9. }
  10. }
  11. }
  12. });
  13.  
  14. var track = {
  15. cover: 'Test Cover'
  16. };
  17. React.render(<TrackItem track={ track } />,mountNode);

另请注意,getDefaultProps中返回的对象在组件的所有实例(reference)之间共享.

猜你在找的React相关文章