提问者:小点点

在React中如何将组件作为道具传递给道具?


我使用的是dev-express中的react-grid库,库中有一个表组件,我们可以向它传递单元格组件,在CustomCell中,我使用的是Material UI中的菜单

  <Table
        columnExtensions={tableColumnExtensions}
        cellComponent= {CustomCell}
  />

在上述情况下,菜单工作良好,

但是我想要传递道具到这个组件,我尝试了以下操作

 <Table
        columnExtensions={tableColumnExtensions}
        cellComponent= {(props)=><CustomCell {...props} someFunc={this.someFunc} />}
/>

在这种情况下菜单不工作,我想知道是否有一个替代的方法来实现第二种情况。


共2个答案

匿名用户

您可以使用withprops:

const CustomCellWithSomeFunc = withProps({someFunc: this.someFunc.bind(this)})(CustomCell);

<Table
    columnExtensions={tableColumnExtensions}
    cellComponent= {CustomCellWithSomeFunc/>}
/>

匿名用户

如果您周围的组件提供了道具,那么您可以如下所示:

class Foo extends React.Component {

  someFunc = () => {}

  render () {
    return <Table
      columnExtensions={tableColumnExtensions}
      cellComponent= {() => <CustomCell {...this.props} someFunc= 
        {this.someFunc} />}
      />
  } 
}