React Js Es6 风格的三元运算符

Posted

技术标签:

【中文标题】React Js Es6 风格的三元运算符【英文标题】:Ternary operator on style with React Js Es 6 【发布时间】:2017-04-26 20:04:21 【问题描述】:

我正在尝试添加以下三元运算符以在我登录时显示我的按钮,如果我不隐藏它。以下内容不断向我抛出错误。

<img src=this.state.photo  style="isLoggedIn ? 'display:' : 'display:none'"  />

【问题讨论】:

这是正确的做法:style= isLoggedIn ? display:'block' : display:'none' 我已经加了同一个答案的哥们 Doh,是的,只是在这里写出来,忽略引号。漫长的一天... 【参考方案1】:

你也可以这样做:

const styles = 
    display: isLoggedIn ? 'block' : 'none'

其他答案似乎也不错,只是表面上的改变......

【讨论】:

【参考方案2】:

如果不想内联样式,可能想要使用样式 const 下的值,这是一种方法:

function nameFunction(props) 
    return (
        <Button style=props.isSelected ? styles.Active : styles.Inactive >props.title</Button>
    );


const styles = 
    Active: 
        backgroundColor: 'orange'
    ,
    Inactive: 
        backgroundColor: 'grey'
    ,

【讨论】:

【参考方案3】:

三元应该如下:

style=isLoggedIn ?  display:'block'  :  display:'none' 

删除引号 - 然后它应该可以工作(假设 isLoggedIn 是一个布尔值)。

【讨论】:

【参考方案4】:

你提供给 style 属性的应该是一个对象。由于我们在花括号之间的 jsx 中编写 js 代码,因此您将在其中插入一个对象。

请记住,您需要对所有 css 道具进行驼峰式命名。 (字体大小 ==> 字体大小)

<img 
  src=this.state.photo 
   
  style= isLoggedIn ?  display:'block' : display : 'none'   
/>

<img
  src=this.state.photo 
  
  style=  display: isLoggedIn ? 'block' : 'none'    
/>

【讨论】:

感谢@FurkanO 成功了!!

以上是关于React Js Es6 风格的三元运算符的主要内容,如果未能解决你的问题,请参考以下文章

如何在 React JS 中使用三元运算符将 Font Awesome Icons 与文本一起使用?

您对三元运算符使用哪种编码风格? [关闭]

React useState:如何将三元运算符放在三元运算符中?

javascript ES6 - 带三元运算符的模板字符串

React - 三元运算符和声纳

有没有更好(更干净)的方法来使用三元运算符(不重复代码)编写这个 JS 代码?