ループ内に戻ると、関数(ループを含む)全体が実行を終了します。
この問題を解決する方法は、の配列の配列を作成し、ループの後に配列全体を返すことです。
let { rounds, current_round } = this.props.order;
let list = [];
for (let i = current_round + 1; i < rounds + 1; i++) {
list.push(
<li>
<button id={i} key={i} className="rounds_btn">{i}</button>
</li>
);
}
return list;
しかし、リアクトでこれを行うための通常の方法はmap
functionを使用することです。多くの場合
let { order } = this.props;
let nums = range(order.current_round + 1, order.rounds + 1);
return nums.map(i => (
<li><button key={i} id={i} className='rounds_btn'></button></li>
));
// quick range utility (could use lodash...)
function range(start, end) {
let nums = [];
for (let i = start; i < end; i++) nums.push(i);
return nums;
}
あなたはすでにあなたの配列(人のリスト、アイテムのリストなど)を持っているだろうし、あなたがする必要があるのは、そのリストを返し、その後、リアクトコンポーネントにそれぞれ1をマップです。
また、Reactがコンポーネントのリストを忘れてしまった場合に警告する、key
という属性を追加しました(別の順序でリストを再レンダリングするとリストの調整に役立ちます)。 class
のJavaScriptの予約語であるため、
また、むしろclassName
よりclass
を使用するために気をつけ、代わりにJSXの小道具としてclassName
を使用することを選択し反応します。
ありがとう、それは私の問題を解決! –