Filtered table in React.js
Yeah it's hard to read and only by looking at the source for RowFilter can you understand that it's injecting props into the child component that is given to it. Instead of passing it in as a child, you should pass it in a component prop.

&lt;RowFilter data={data} component={List} /&gt;


Then in RowFilter.js, the render simply looks like this. Note the component prop gets renamed to uppercase.

&lt;Component data={this.state.filteredData} /&gt;


Here's an updated example on codesandbox