Как передать компонент как реквизит с реквизитом в реакции? - PullRequest
0 голосов
/ 04 июня 2018

Я использую библиотеку реагирующей сетки из dev-express. В библиотеке есть компонент Table, в который мы можем передать компонент Cell. Внутри CustomCell я использую Menu из Material UI

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

В вышеприведенном случае меню работает нормально,

Но я хочу передать реквизиты этому компоненту, и я попробовал следующее

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

В этом случае Меню не работает, я хотелзнать, есть ли альтернативный способ достижения второго случая.

Ответы [ 2 ]

0 голосов
/ 04 июня 2018

Вы можете сделать это с помощью withProps:

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

<Table
    columnExtensions={tableColumnExtensions}
    cellComponent= {CustomCellWithSomeFunc/>}
/>
0 голосов
/ 04 июня 2018

Учитывая, что окружающий Компонент предоставляет props, вы можете пойти так:

class Foo extends React.Component {

  someFunc = () => {}

  render () {
    return <Table
      columnExtensions={tableColumnExtensions}
      cellComponent= {() => <CustomCell {...this.props} someFunc= 
        {this.someFunc} />}
      />
  } 
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...