条件必选getInitialState- if value为null

Conditional getInitialState- if value null

本文关键字:value null if getInitialState- 条件      更新时间:2023-09-26

我在反应中的getInitialState有一些麻烦。我有一些数据到达我的道具,但它并不总是有键"text"。

如果它找不到props字段"text"我想给它一个空值

我基本上想说' this.props.photo.info[0].text或者如果不存在,显示'

我尝试了

下面给出一个无效的props错误:

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数据在props

的例子
   {
        "title": "Item 1",
        "info": [
            {
                "text": "<h1> I'm a real value </h1> <br/> <p> Not always here</p>",
            }
        ],
    },
   {
        "title": "Item 2",
        "info": [],
    },

我可以看到为什么你的第二个例子将是[对象对象],但第一个看起来像它应该工作给我,但你会得到一个错误,如果没有info[0]。试试下面的方法?-

getInitialState() {
  return {
    value: ((this.props.photo && this.props.photo.info && this.props.photo.info[0] && this.props.photo.info[0].text) || '')
  };
}

我经常使用默认值,它们可以以一种非常优雅的方式提供默认值