Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/429.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 根据reactjs中的条件将css添加到现有应用的css中?_Javascript_Html_Css_Reactjs - Fatal编程技术网

Javascript 根据reactjs中的条件将css添加到现有应用的css中?

Javascript 根据reactjs中的条件将css添加到现有应用的css中?,javascript,html,css,reactjs,Javascript,Html,Css,Reactjs,我有一个style const变量 const style = { timeInput: { width: '3.75rem', outline: 'none', borderColor: 'transparent', fontSize: remCalc(12), color: darkestGrey }, } 这是输入字段 <input style={style.timeInput} //here disabled={disabl

我有一个style const变量

const style = {
  timeInput: {
    width: '3.75rem',
    outline: 'none',
    borderColor: 'transparent',
    fontSize: remCalc(12),
    color: darkestGrey
  },
}
这是输入字段

<input
  style={style.timeInput} //here
  disabled={disabled}
  ref={instance => (this.dropDown = instance)}
  value={typeof time === 'string' ? time : moment(time).format('LT')}
  onChange={this.onTimeChange.bind(this)}
></input>

当禁用为true时,如何添加不透明度:“0.4”css?

您可以使用添加的属性创建新对象。在该输入的JSX之前:

let inputStyle = style.timeInput;
if (disabled) {
    inputStyle = {...inputStyle, opacity: "0.4"};
}
然后在元素上使用inputStyle而不是style.timeInput

如果愿意,您可以避免If,但创建不必要对象的成本非常非常非常小:

const inputStyle = {...style.timeInput, ...(disabled ? {opacity: "0.4"} : null)};

这是有效的,因为散布null是不可操作的。

您可以创建一个添加了属性的新对象。在该输入的JSX之前:

let inputStyle = style.timeInput;
if (disabled) {
    inputStyle = {...inputStyle, opacity: "0.4"};
}
然后在元素上使用inputStyle而不是style.timeInput

如果愿意,您可以避免If,但创建不必要对象的成本非常非常非常小:

const inputStyle = {...style.timeInput, ...(disabled ? {opacity: "0.4"} : null)};

这是有效的,因为传播空值是不可行的。

@Clarity-Doh!谢谢-@清晰-Doh!谢谢-