0
私は全く新しい反応を示しています。次のチュートリアルコードについて質問があります。REACT:チュートリアルコードによる質問
var Board = React.createClass({
render: function() {
var className = "board";
if (this.props.selected) {
className += " selected";
}
return (
<div className={className}>
{this.props.index + 1}
</div>
);
}
});
var BoardSwitcher = React.createClass({
render: function() {
var boards = [];
for (var ii = 0; ii < this.props.numBoards; ii++) {
var isSelected = ii === 0;
boards.push(
<Board index={ii} selected={isSelected} key={ii} />
);
}
return (
<div>
<div className="boards">{boards}</div>
<button>Toggle</button>
</div>
);
}
});
ReactDOM.render(
<BoardSwitcher numBoards={3} />,
document.getElementById('container')
);
練習によると、最初のボードは常に選択されます(var isSelected = ii === 0)。しかし、私はなぜそれがこのようなのか分かりません。 iiは最初の反復中に厳密に0に等しくなります。 isSelectedは、最初の反復では「true」に、すべての反復では「false」になります。したがって、常に最初のボードを選択するとは限りません。
ボードのインデックスはiiに等しく、レンダリングが呼び出されるたびに1で更新されます。
私の思考プロセスには何が問題なのですか?
作成した最初のボードには常にマークが付けられ、後で選択されないボードは常にマークされます。ループは3つのボードを作成し、最初のものを選択して設定しています。あなたがこれを始めるたびに、それは選択されたものとして作られた最初のボードと、そうでないものとしてマークされます。 – DillGromble
boards.pushによってボードが作成されるのはいつですか? – aDev
ボードのインデックスはiiと等しく設定されています。また、ii === 0のブール値と同じ値が選択されます。これは最初のボードでのみ発生します。ボードのインスタンスは3つあります。 3つのボードは、[<ボードインデックス= 0が選択された=真/>、<ボードインデックス= 1が選択された= false />、ボードインデックス= 2選択= false />] – DillGromble