将ID分配给React组件

时间:2018-09-19 05:32:39

标签: javascript reactjs kendo-ui kendo-grid kendo-react-ui

我们有一个React Grid组件,我们需要为所有Grid组件分配ID。有什么建议我们该怎么做?组件片段如下所示:

<Grid 
    data={this.state.items}
    sortable={{
       allowUnsort: this.state.allowUnsort,
       mode: this.state.multiple,
       sortDir:this.state.sortDir
    }}
    sort={this.state.sort}
    onSortChange={this.sortChange}
    filterable={true}
    filter={this.state.filter}
    onFilterChange={this.filterChange}
    onPageChange={this.pageChange}
    total={this.state.total}
    skip={this.state.skip}
    pageSize={this.state.pageSize}
    pageable={this.state.pageable}
    scrollable={this.state.scrollable}
    //style={{ height: '500px' }}
  >
  <Column
    field="networkName"
    sortable={{
       allowUnsort: this.state.allowUnsort,
       mode: this.state.multiple ? 'multiple' : 'single',
    }}
    onSortChange={this.sortChange} title="Network Name" width="400px" cell={NetworkNameCell}  />
    <Column field="networkGroups" title="Network Groups" width="250px" id="networkGroupsId"/>
    <Column field="networkType" title="Network Type" width="250px" id="networkTypeId"/>
    <Column field="providersCount" title="Assigned Providers"  />
    <Column field="locationsCount" title="Assigned Locations"  />
    <Column cell={this.DeleteCommandCell} title="Action" sortable={false} filterable={false} />
    <span class="k-icon my-refresh-icon-class"></span>
</Grid>

2 个答案:

答案 0 :(得分:1)

这不起作用,因为id需要在HTML元素上设置,而不是在某些自定义组件上设置。您可以查看docs以获得更多信息和受支持的html属性列表。将其设置在table上将为您提供所需的结果。例如:

 <table id="myTable">
      <tr>
           <td> data </td>
      </tr>
 </table>

在您的情况下,您可以做的是更改<Grid/>的实现,并使其将传递的id传播到基础根html元素。

答案 1 :(得分:0)

您可以安装名为uniqueid的npm软件包,并将其导入到页面顶部,如下所示:

import uniqueid from 'uniqueid'

然后将id={uniqid()}作为Grid组件的道具 这将为您的组件提供唯一的ID。所有这些都假定您没有在地图或其他循环函数中使用网格来渲染它。如果这样做,那么循环数组的元素就可以用作id。