我们可以将过滤器组件的输入字段替换为材质UI文本字段

时间:2016-12-14 17:39:48

标签: css3 reactjs material-ui griddle

我正在尝试使用materialUI文本字段中的文本字段替换过滤器组件输入字段。 我可以通过创建一个新组件来显示输入字段,但它不是过滤内容。

我不想要不同的过滤器功能,只想用输入字段替换材料UI文本字段

Current Griddle部分是

从' / imports / ui / components / admin / common / pagination-new'中导入分页; 从' / imports / ui / components / admin / common / filteration-new';

导入过滤
    <Griddle
      ref={(ref) => {this._griddle = ref}}
      useGriddleStyles={false}
      columnMetadata={columnMeta}
      results={this.getGriddleData()}
      resultsPerPage={5}
      tableClassName='table'
      showFilter={true}
      settingsText={''}
      showSettings={true}
      settingsToggleClassName={'text-hide'}
      settingsIconComponent={
        <RaisedButton
          label='Columns'
          primary={true}
        />}
      useCustomPagerComponent={true}
      customPagerComponent={Pagination}
      useCustomFilterComponent={true}
      customFilterComponent={Filteration}
      columns={[
        'actions','name', 'published', 'whiteboard.exist',
        'location.floor', 'capacity.number',
        'av.tv','av.appleTv','av.videocon',]}/>

过滤组件

  render() {
    return (
      <div style={{display: 'flex'}}>
          <TextField
            name='title'
            floatingLabelText='title'
          />
      </div>
    )
  },

1 个答案:

答案 0 :(得分:1)

是的,这可以做到。您提供给customFilterComponent的组件将从Griddle收到以下道具:changeFilterresultscurrentResultsplaceholderText。然后,您可以在该组件内引用这些组件,并将它们传递到材料-ui TextField:

render() {
    const { changeFilter, results, currentResults, placeholderText } = this.props;

    return (
        <div style={{ display: 'flex' }}>
            <TextField
                onChange={(e, value) => changeFilter(value)}
                name='title'
                floatingLabelText={placeholderText}
            />
        </div>
    )
}