条件getInitialState-如果值为null

时间:2016-10-31 12:19:08

标签: javascript reactjs

我在使用反应中的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": [],
    },

2 个答案:

答案 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,他们可以非常优雅的方式提供默认值。