まだ反応とその不思議な方法に頭を抱えています。jQuery + HTML では<ListView> </ListView>
、 を生成する for ループによって後で入力される要素がある場合があります<Item>
。同様に、Angular では単純に ng-repeat を行います。
これを行うための反応方法は何ですか?以前は<ListView items={listItems}></ListView>
listItems が他の場所でlistItems = {heading:"qwerty", label:"test"}
etc として定義されていたときにこれが機能していましたが、実行時にコードを調べると、<Item>
作成されたそれぞれが「ReactElement」タイプであることがわかり、その動作の使用はサポートされていません。
どんなアイデアでも大歓迎です!ありがとう。
更新されたコード:
render:function(){
//Do the rendering
var listViewItemsToRender = this.state.ListViewItems.map((item) => {
return (
<Item><div style={itemContainerParent}> <div style={itemPlatform}> <h1>props.platform</h1> </div><div style={routeInfo}><h1>props.routeInfo</h1></div><div style={timeInfo}><div style={row}><p>props.timeArriving</p></div><div style={row}><p>props.timeLeaving</p></div></div></div></Item>
)
});
return (
<Page>
<BannerHeader theme="prime" key="header" flex={0} textAlign="center">Train Times</BannerHeader>
<h2>{this.state.subheading}</h2>
<Container>
<Padding>
<BasicSegment>
<ButtonGroup fluid>
<Button onClick={this.showDepartures} variation={this.state.departuresSelected}>Departures</Button>
<Button onClick={this.showArrivals} variation={this.state.arrivalsSelected}>Arrivals</Button>
</ButtonGroup>
<Listview items={listViewItemsToRender}></Listview>
</BasicSegment>
</Padding>
</Container>
</Page>
);
}