ReactJ에서 아코디언과 같은 작업을하려고합니다. <TableList>
, <TableListGroupRow>
, <TableListRow>
React 구성 요소를 다른 React 구성 요소의 배열로 푸시 할 수 없습니다.
목록에서 것은 그때 렌더링 배열에 GroupRows 및 행을 밀어 방법을 렌더링 : 은 지금은 3 개 구성 요소가 있습니다.
//one group row for example
var group;
tableRows.push(
group =
<TableListGroupRow
onClick={this.toggleOpenGrp } />
);
//one row for example
var row;
tableRows.push(
row =
<TableListRow
onClick={this.rowClick2 } />
);
group.children.push(row);
return (
<tbody>
{tableRows}
</tbody>
);
내가 속한 groupRow.children에 행에 대한 링크를 저장하려고합니다. 아이디어에 의해 groupRow를 클릭하고 상태를 'children'속성의 모든 행에 대해 숨김으로 설정할 수 있습니다.
그러나 내가 배운대로 <TableListGroupRow>
은 자식 배열이있는 인스턴스 개체를 반환하지 않습니다. 어쩌면 그것은 완전히 잘못된 개념 일 것입니다. 그런 일이 어떻게 반응하는지 알려주세요.
감사합니다. 당신은 확실히 "저장 링크 '할 필요가 없습니다
이제 ListRow() 메서드에서 빈 객체를 만듭니다.이 객체는 GroupRow와 해당 행 모두의 소품으로 전달됩니다. GroupRow 렌더링 메서드에서이 빈 객체에 'this'를 전달합니다. Row 렌더링 메소드에서 'this'Row를 this.props.thatEmptyObject.groupRow.state.children []에 푸시합니다. –