Javascript 根据reactjs中的条件将css添加到现有应用的css中?
我有一个style const变量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
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!谢谢-