2017-11-23 9 views
1

リアクションアプリの素材UIを別のファイルに作成しました。材料uiテーブル行のチェックボックスが表示されない

TradesTable.js

const DummyTableRow = (props) => { 
    let myRows = props.trades.map((trade, index) => { 
     return <TableRow> 
     <TableRowColumn key={index} style={{fontSize:'10px'}}>{trade[0]}</TableRowColumn> 
     <TableRowColumn key={index} style={{fontSize:'10px'}}>{trade[1]}</TableRowColumn> 
     <TableRowColumn key={index} style={{fontSize:'10px'}}>{trade[2]}</TableRowColumn> 
     <TableRowColumn key={index} style={{fontSize:'10px'}}>{trade[3]}</TableRowColumn> 
     <TableRowColumn key={index} style={{fontSize:'10px'}}>{trade[4]}</TableRowColumn> 
     <TableRowColumn key={index} style={{fontSize:'10px'}}>{trade[5]}</TableRowColumn> 
     <TableRowColumn key={index} style={{fontSize:'10px'}}>{trade[6]}</TableRowColumn> 
     </TableRow> 
     }); 
    return myRows; 
} 

const TradesTable = (props) => { 
    return(
     <Table> 
      <TableHeader> 
       <TableRow> 
        <TableHeaderColumn>Trade date</TableHeaderColumn> 
        <TableHeaderColumn>Commodity</TableHeaderColumn> 
        <TableHeaderColumn>Side</TableHeaderColumn> 
        <TableHeaderColumn>Qty</TableHeaderColumn> 
        <TableHeaderColumn>Price</TableHeaderColumn> 
        <TableHeaderColumn>CounterParty</TableHeaderColumn> 
        <TableHeaderColumn>Location</TableHeaderColumn> 
       </TableRow> 
      </TableHeader> 
     <TableBody> 
      <DummyTableRow trades={props.trades}/> 
     </TableBody> 
    </Table> 
    ); 
} 

module.exports = TradesTable 

このテーブルの行は成分の小道具から移入されています。

この表は、他のコンポーネントで、品目UI <AppBar>コンポーネントの一部として使用されています。

<AppBar style={{backgroundColor: 'White'}} 
        iconElementLeft={<TradesTable trades={this.props.trade}/>} 
        .... 
        .... 

this.props.tradeの値は店舗からの値です。

テーブルヘッダーにチェックボックスが表示されていますが、行にはチェックボックスが表示されません ドキュメントを読みましたが、デフォルトの動作ではチェックボックスが表示されます。

私はここで、行のチェックボックスが表示されないようにしていますか?ここで

enter image description here

+0

チェックボックスは、デフォルトであるはずです。コンソールにエラーがありますか?

要素にselectable = {true}を追加できますか? – klugjo

+0

コンソールにエラーはありません。チェックボックスに関連するすべての属性を手動で設定しようとしましたが、動作しませんでした。 –

+0

'DummyTableRow'を削除して行を直接挿入できますか? {DummyTableRow trades = {props.trades} /> 'の代わりに' {DummyTableRow(props.trades)} 'を使用しますか? – klugjo

答えて

2

問題がDummyTableRowである:

あなたがしようとすると何が起こる:それは何

<TableBody> 
    <DummyTableRow trades={props.trades}/> 
</TableBody> 

<TableBody> 
    <DummyTableRow> 
     <TableRow> 
      <TableRowColumn key={index} style={{fontSize:'10px'}}>{trade[0]}</TableRowColumn> 
      ... 
     </TableRow> 
     ... 
    <DummyTableRow> 
</TableBody> 
です

const getRow = (data) => { 
    let myRows = data.trades.map((trade, index) => { 
     return <TableRow> 
     <TableRowColumn key={index} style={{fontSize:'10px'}}>{trade[0]}</TableRowColumn> 
     <TableRowColumn key={index} style={{fontSize:'10px'}}>{trade[1]}</TableRowColumn> 
     <TableRowColumn key={index} style={{fontSize:'10px'}}>{trade[2]}</TableRowColumn> 
     <TableRowColumn key={index} style={{fontSize:'10px'}}>{trade[3]}</TableRowColumn> 
     <TableRowColumn key={index} style={{fontSize:'10px'}}>{trade[4]}</TableRowColumn> 
     <TableRowColumn key={index} style={{fontSize:'10px'}}>{trade[5]}</TableRowColumn> 
     <TableRowColumn key={index} style={{fontSize:'10px'}}>{trade[6]}</TableRowColumn> 
     </TableRow> 
     }); 
    return myRows; 
} 

し、使用することを代わりにステートレスなコンポーネントの簡単な関数CREAT

:かなり正しい構造ではありません

、それはこのため

<TableBody> 
    <TableRow> 
     <TableRowColumn key={index} style={{fontSize:'10px'}}>{trade[0]}</TableRowColumn> 
     ... 
    </TableRow> 
    ... 
</TableBody> 

ソリューションのようにする必要がありますそれは好きです

<TableBody> 
    { getRow(props.trades) } 
</TableBody> 
(問題とソリューションの両方で)

WORKING DEMO

+0

これは動作します!私は解決しようとする別の問題があります。ありがとう!!! –

+0

@AmarDev、ここに嬉しい:) –

関連する問題