2017-11-23 5 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입니다.

여기의 문제는 표 머리글에 확인란이 표시되지만 행에 확인란이 표시되지 않는다는 것입니다. 설명서를 읽었으며 기본 동작은 확인란이 표시된다는 것입니다.

팸 (Wham) 행에 대한 확인란이 표시되지 않습니다. 여기

enter image description here

+0

확인란은 기본적으로이 있어야합니다. 콘솔에 오류가 있습니까?

요소에 선택 가능 = {true}를 추가 할 수 있습니까? – klugjo

+0

콘솔에 오류가 없습니다. 확인란과 관련된 모든 특성을 수동으로 설정하려고 시도했지만 여전히 작동하지 않았습니다. –

+0

'DummyTableRow'을 제거하고 행을 직접 삽입 해 볼 수 있습니까? 또는 '대신'{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> 
,691됩니다 : 당신이하려고하면

어떻게됩니까아주 정확한 구조가 아닌

, 그것은해야

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

이것에 대한 해결책과 같은 :

CREAT 간단한 함수 대신 비 저장 구성 요소가

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; 
} 

및 사용 좋아해.

<TableBody> 
    { getRow(props.trades) } 
</TableBody> 

WORKING DEMO (문제 및 솔루션 모두)

+0

이 작품! 해결할 다른 문제가 있습니다. 감사!!! –

+0

@AmarDev, 여기에 기쁜 :) –