ブートストラップグリッドのJSX条件付きラッパーを反応して、各<Book />
コンポーネントはは、私が<code>row</code>で2 <code>col-md-6</code>をレンダリングする必要があると仮定すると、ブートストラップ・グリッドにコンポーネントを反応させるのレンダリング中にちょうどこの面白いことに直面
+---------------------+
| col-md-6 | col-md-6 |
| Book | Book | <--- row
|---------------------|
| col-md-6 | col-md-6 |
| Book | Book | <--- row
+---------------------+
col-md-6
div
ブロックの内側に置かれています私は、次のようにレンダリングしてみました何
、それは以下の構造に似て形成することを期待、
<Row>
<Col>
<Book />
</Col>
<Col>
<Book />
</Col>
</Row>
<Row>
<Col>
<Book />
</Col>
<Col>
<Book />
</Col>
</Row>
、
export default class BookList extends React.Component {
render() {
let books = [];
lodash.each(this.props.books, function (book, index) {
index % 2 === 0 ? books.push(<div className="row" key={index}>): null;
books.push(
<div className="col-md-6">
<Book />
</div>
)
index % 2 === 1 || index === this.props.books.length - 1? books.push(</div>): null
})
return (
<div className="container">
{books}
</div>
)
}
}
出力が不正な形式のHTMLで、JSXがレンダリング時に各項目を検証して終了タグを待たないように見えます。
正しく動作させる方法やヒントはありますか?
興味なぜあなたは、 'this.state'を列幅の小道具に変更するのではなく、ループが返すコンポーネントとして完成した'
'を使うだけですか? – markthethomas(そして、幅設定ロジックを外側に移動し、それをループ可能なコンポーネントに注入してください) – markthethomas