Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在react对象内使用if-else条件_Javascript - Fatal编程技术网

Javascript 如何在react对象内使用if-else条件

Javascript 如何在react对象内使用if-else条件,javascript,Javascript,如果..有人能告诉我一个替代方法吗。。否则。。对象内部的条件 const background = { color: { if ( this.props.status == 'broker') { background : '#FFFFFF' } esle { background : 'green' } } } 您可以使用三元: const background = { color: this.pro

如果..有人能告诉我一个替代方法吗。。否则。。对象内部的条件

const background = {
    color: {
      if ( this.props.status == 'broker') {
        background : '#FFFFFF'
      } esle {
        background : 'green'
      }
    }
}

您可以使用三元:

const background = {
    color: this.props.status === 'broker' ? '#ffffff' : 'green'
}
如果您需要更多条件,这可能会受到限制和/或难以理解,因此您也可以使其发挥作用,但您只需注意如何/在何处调用它:

const background = {
    color: function() {
      let color

      if(this.props.status === 'broker') {
        color = '#ffffff'
      } else {
        color = 'green'
      }

      return color
    }
}

您不需要对其进行内联评估。嵌套的三元语句可能会变得非常难看。您只需创建一个函数并将结果传递到:

function bgColor(status) {
  if (status === 'broker') {
    return { background: '#fff' }
  }

  if (status === 'whatever' {
    // return ...
  }

  // whatever else
}

const background = {
  color: bgColor(this.props.status)
}

如果我想使用两个以上的条件,那么?@radjeep nested ternarys?@RajdeepRatan我编辑了我的答案。您可以像Jonas w建议的那样使用嵌套三元数,但如果这些三元数难以读取,您可以将属性设置为函数。@RajdeepRatan嵌套三元数不是特定于react的。我建议在谷歌上查找“JavaScript中的嵌套ternaries”或其他内容并阅读它们。你也可以使用二进制运算符:
-5 | |'/-5