我遇到問題 - 我不知道如何使用道具的顏色值更改複選框的顏色。我的想法是通過樣式屬性給它,但我不知道如何切換這個。我正在使用rc-switch,我想根據開關狀態更改他的背景。我有這樣的事情現在如何將React prop傳遞給CSS
<Switch style={{ backgroundColor: mainColor }}/>
但是設置這個顏色兩種狀態,我想是在關閉位置時,該SWICH成爲「defaultColor」。
我遇到問題 - 我不知道如何使用道具的顏色值更改複選框的顏色。我的想法是通過樣式屬性給它,但我不知道如何切換這個。我正在使用rc-switch,我想根據開關狀態更改他的背景。我有這樣的事情現在如何將React prop傳遞給CSS
<Switch style={{ backgroundColor: mainColor }}/>
但是設置這個顏色兩種狀態,我想是在關閉位置時,該SWICH成爲「defaultColor」。
Switch Component上沒有樣式道具,但是有一個className道具,您可以使用它來添加自定義類。
如果您使用的青菜:
.mySwitch {
&-black {
background-color: black;
}
&-yellow {
background-color: yellow;
}
}
然後編程切換類。
<Switch className={`mySwitch-${color}` ... />
可能是一個選項,我認爲。
您必須將回調傳遞給您的<Switch>
組件,然後處理該事件。您可以編寫一個包裝原始<Switch>
的組件,並在狀態發生變化時切換顏色。它可能看起來像這樣:
import React from 'react';
import Switch from 'rc-switch';
class ColorChangingSwitch extends React.Component {
constructor(props) {
super(props);
const {checked, defaultChecked} = props;
this.state = {
checked: checked || defaultChecked || false;
}
}
onChange = (checked) => {
// update your state
this.setState({
checked: checked,
});
this.props.onChange(checked);
}
render() {
const {onChange, className, checked, ...otherProps} = this.props;
const colorClassName = this.state.checked ? 'green' : 'red';
return (
<Switch
{...otherProps}
onChange={this.onChange}
checked={checked}
className={`${className} ${colorClassName}`}
/>
);
}
}
export default ColorChangingSwitch;
這只是一個基本的例子。我沒有測試它。您仍然可以將onChange
傳遞給該組件並根據需要做出反應。你也可以添加一個道具,根據它的狀態來定義它應該設置哪些顏色/類,而不是硬編碼它們。
Switch Component上沒有'style'道具,但有一個'className'道具,您可以使用它來添加自定義類。 – webdeb