gpt4 book ai didi

reactjs - react : Nested defaultProps deep merge

转载 作者:行者123 更新时间:2023-12-03 13:15:53 26 4
gpt4 key购买 nike

我有一个 track 属性,其定义如下:

  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'
}
}
}

我有机会在 View 级别做到这一点吗?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 ) 的所有实例之间共享。

关于reactjs - react : Nested defaultProps deep merge,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29194997/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com