Im在ReactJS中編譯項目。我有一些可以被用戶點擊的div。默認情況下,每個div的背景顏色應該設置爲綠色,但點擊後它應該變成紅色(意味着這個特定的div已經被點擊並且進一步點擊它不會有任何區別)。我設置CSS類的想法是在className內部,我有一個基於數組中對應值的三元if語句。我提出的解決方案沒有做任何事情,沒有出現任何錯誤。我怎樣才能實現我的目標?如何根據ReactJS中的狀態變量值分配CSS類
代碼:
var style = require('./board.css');
var React = require('react');
class board extends React.Component {
constructor(props) {
super(props);
this.handleClick = this.handleClick.bind(this);
this.state = {
fieldClicksArray: [
false, false, false,
false, false, false,
false, false, false
]
}
}
handleClick(index) {
if (this.state.fieldClicksArray[index] === false) {
this.state.fieldClicksArray[index] = true;
}
render() {
return (
<div className="parent">
<div className={this.state.fieldClicksArray[0] ? 'red' : 'green'} onClick={() => this.handleClick(0)}>1</div>
</div>//parent
)//return
}//render
}//class
export default board;
的CSS:
.red {
background-color: red;
}
.green {
background-color: green;
}
我相信這行: 'newArray [index] === false;'你想把它設置爲true。我改變了這一點。此外,我已經嘗試了您的建議,仍然沒有任何更改,並沒有出現錯誤 –
@AleksanderSadaj有一些語法錯誤。我已經刪除它們。請參閱片段。 – nrgwsth
由於您在原始陣列上操作,因此這會直接修改狀態。 –