私はgameBoardを作成しており、ボタンのdivの背景色を切り替えることができません。トグルは「ボタン」(スタイル付きdiv)の個々のクリックに対して機能しますが、隣のボタンをクリックすると、次のボタンを押して背景色を変更する必要があります。最初のクリックで隣接するボタンを切り替えるにはどうすればよいですか?私は(Changing style of a button on click)のようないくつかの関連記事を読んで、まだこの作業を取得するために苦労してきました -React - 隣接する要素のトグルカラー
下記の関連のコードを、 フルコード:https://jsfiddle.net/lydiademi/kt2qgfpr/
TYを!
class App extends React.Component {
constructor(props) {
super(props)
this.state = {
color: '#FFF',
color_white: true,
currentWord: '',
board1: [],
row1: ["aaafrs","aaeeee","aafirs","adennn","aeeeem"],
}
this.clicked = this.clicked.bind(this);
}
componentWillMount() {
let letter1 = '';
this.state.row1.forEach(die => {
letter1 = die[Math.floor(Math.random() * 6)].toUpperCase();
if (letter1 === 'Q') {
this.state.board1.push("Qu")
} else {
this.state.board1.push(letter1);
}
})
}
clicked(event) {
//change background color
let newColor= this.state.color === "#FFF" ? "#ACCEEC" : "#FFF";
this.setState({ color: newColor });
event.target.style.backgroundColor = newColor;
}
render() {
return (
<div id="board">
<div className="row">
{
this.state.board1.map((letter, index) => {
return (
<div className="btn" onClick={(e) => {this.clicked(e)}}>
{letter}
</div>
)
})}
</div>
)
}
、それをクリックするとあなたのボードの移動: – Dane
oをそれはjavascriptの問題の多くはであるので、私はタグを編集しました。私は問題がこのコードにあると思う 'var newColor = this.state.color ===" #FFF "? "#ACCEEC": "#FFF";this.setState({color:newColor}); event.target.style.backgroundColor = newColor; ' –
問題は状態とアップデートにあります。初期状態の後は、すべてのボタンが期待どおりに「切り替わる」ことに注意してください。記載されているように、 "...それは2回のクリックが必要です。" – 09182746