我在使用反应中的getInitialState时遇到了一些麻烦。我有一些数据到达我的道具,但它不会总是有关键"文字"。
如果它没有找到道具字段,我希望它只是给它一个空值" text"
我基本上想说 `this.props.photo.info [0] .text或如果不存在,请显示''我用
尝试了这个下面给出了无效的道具错误:
getInitialState() {
return {
value: ((this.props.photo && this.props.photo.info && this.props.photo.info[0].text) || '')
这给出了同样的错误:
value:this.props.photo.info[0].text || 'empty'
如果我执行以下操作,返回的所有内容都是[Object, Object]
,这使我认为它是从第一个this.props.photo或.info返回的值(即不是一直到info [0]的.text)
(this.props.photo || this.props.photo.info || this.props.photo.info[0])
这是我在道具
中的json数据的示例 {
"title": "Item 1",
"info": [
{
"text": "<h1> I'm a real value </h1> <br/> <p> Not always here</p>",
}
],
},
{
"title": "Item 2",
"info": [],
},
答案 0 :(得分:1)
我可以看到为什么你的第二个例子是[Object Object]但是第一个看起来它应该对我有用,但是如果没有info[0]
你就会收到错误。尝试以下? -
getInitialState() {
return {
value: ((this.props.photo && this.props.photo.info && this.props.photo.info[0] && this.props.photo.info[0].text) || '')
};
}
答案 1 :(得分:-1)
我经常使用default values,他们可以非常优雅的方式提供默认值。