[英]Changing the colour of specific elements in Reactjs when clicking a button
我希望能夠更改網頁上某些元素的顏色以使其更易於訪問。
class App extends Component {
render() {
return (
<React.Fragment>
<div>This is a button</div>
<button>Click me!</button>
</React.Fragment>
);
}
}
例如,如果我在 React 中有類似的東西,我如何在單擊按鈕時將 div 的背景顏色更改為紅色,將按鈕的背景更改為藍色? 我曾嘗試使用 ref 但我不太自信,因此將不勝感激,謝謝。
class App extends Component {
constructor(props) {
super(props);
this.state = {
divColor: "white",
buttonColor: "white"
};
}
handleButtonClick = () => {
this.setState({
divColor: "red",
buttonColor: "blue"
})
}
render() {
return (
<React.Fragment>
<div style={{background: this.state.divColor}}>This is a button</div>
<button
style={{background: this.state.buttonColor}}
onClick={this.handleButtonClick}
>
Click me!
</button>
</React.Fragment>
);
}
}
新代碼:
簡單解釋:
handleChangeBackground() {
this.setState({ bgColor: '#000' });
}
<div style={{ backgroundColor: this.state.bgColor }} className="articleParent">
<div>Article Content Section</div>
<colorButton handleBackground={this.handleChangeBackground} />
</div>
colorButton 組件內部:
render() {
return <Button onClick={this.props.handleBackground}>Change Color</Button>
}
孩子正在改變背景,純粹是基於發射 function 的道具。
這可能是錯誤的,我在會議之間 XD 如果不是這樣,我希望它有所幫助!
您可以根據 state 值有條件地添加/刪除類。
function App() {
const [theme, setTheme] = useState('default');
handleClick = () => {
setTheme('red');
}
return (
<React.Fragment>
<div className={theme === 'red' ? 'red-background': 'default-background'}>This is a button</div>
<button onClick={handleClick}>Click me!</button>
</React.Fragment>
);
}
然后在您的 CSS 中,您將定義類
.red-background {
background: red;
}
.default-background {
background: white;
}
如果您的組件上有很多類,這是一個有用的 package 有條件地將 class 名稱連接在一起。 https://github.com/JedWatson/classnames
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.