# Row expand `react-bootstrap-table2` supports the row expand feature. By passing prop `expandRow` to enable this functionality. > Default is click to expand/collapse a row. In addition, we don't support any way to chagne this mechanism! ## Required * [renderer (**required**)](#renderer) ## Optional * [expanded](#expanded) * [nonExpandable](#nonExpandable) * [onExpand](#onExpand) * [onExpandAll](#onExpandAll) * [showExpandColumn](#showExpandColumn) * [expandColumnRenderer](#expandColumnRenderer) * [expandHeaderColumnRenderer](#expandHeaderColumnRenderer) ### expandRow.renderer - [Function] Specify the content of expand row, `react-bootstrap-table2` will pass a row object as argument and expect return a react element. #### values * **row** #### examples ```js const expandRow = { renderer: row => (

{ `This Expand row is belong to rowKey ${row.id}` }

You can render anything here, also you can add additional data on every row object

expandRow.renderer callback will pass the origin row object to you

) }; ``` ### expandRow.expanded - [Array] `expandRow.expanded` allow you have default row expandations on table. ```js const expandRow = { renderer: (row) => ... expanded: [1, 3] // should be a row keys array }; ``` ### expandRow.nonExpandable - [Array] This prop allow you to restrict some rows which can not be expanded by user. `expandRow.nonExpandable` accept an rowkeys array. ```js const expandRow = { renderer: (row) => ... nonExpandable: [1, 3 ,5] }; ``` ### expandRow.onExpand - [Function] This callback function will be called when a row is expand/collapse and pass following four arguments: `row`, `isExpand`, `rowIndex` and `e`. ```js const expandRow = { renderer: (row) => ... onExpand: (row, isExpand, rowIndex, e) => { // ... } }; ``` ### expandRow.onExpandAll - [Function] This callback function will be called when expand/collapse all. It only work when you configure [`expandRow.showExpandColumn`](#showExpandColumn) as `true`. ```js const expandRow = { renderer: (row) => ... onExpandAll: (isExpandAll, results, e) => { // ... } }; ``` ### expandRow.expandColumnRenderer - [Function] Provide a callback function which allow you to custom the expand indicator. This callback only have one argument which is an object and contain one property `expanded` which indicate if current row is expanded ```js const expandRow = { renderer: (row) => ... expandColumnRenderer: ({ expanded }) => ( // .... ) }; ``` > By default, `react-bootstrap-table2` will help you to handle the click event, it's not necessary to handle again by developer. ### expandRow.expandHeaderColumnRenderer - [Function] Provide a callback function which allow you to custom the expand indicator in the expand header column. This callback only have one argument which is an object and contain one property `isAnyExpands` which indicate if there's any rows are expanded: ```js const expandRow = { renderer: (row) => ... expandHeaderColumnRenderer: ({ isAnyExpands }) => ( // .... ) }; ``` > By default, `react-bootstrap-table2` will help you to handle the click event, it's not necessary to handle again by developer. ### expandRow.showExpandColumn - [Bool] Default is `false`, if you want to have a expand indicator, give this prop as `true` ```js const expandRow = { renderer: (row) => ... showExpandColumn: true }; ```