【问题标题】:Custom 'No data' component with dynamic content in React Table在 React Table 中具有动态内容的自定义“无数据”组件
【发布时间】:2019-09-06 18:33:32
【问题描述】:

我有一个反应表,我想创建一个自定义的“无数据”组件,所以我设置如下

<ReactTable
  data={data}
  columns={columns}
  NoDataComponent={NoData}
/>

{NoData} 是我构建的一个 React 组件 - 我将其导入以在页面顶部做出反应,效果很好。

但是现在我必须为组件添加动态标题,通常如果我想将此组件添加到渲染方法中,我会这样添加它

<NoData
  noDataTitle="This is the dynamic title"
/>

我认为没有办法将带有变量的 React 组件添加到 ReactTable 上的“NoDataComponent”变量中,所以我创建了一个 const 来为我执行此操作并最终得到类似的结果

import NoData from '../page/NoData';

class Parent extends React.Component {

const noDataConst = (
    <NoData
      noDataTitle="This is the dynamic title"
    />
  )

return (
  <div>
    <ReactTable
      data={data}
      columns={columns}
      NoDataComponent={noDataConst}
    />
  </div>
)

但这仍然不起作用,我是不是走错了路?有人可以指出我哪里出了问题或指导我阅读一些很棒的文档

【问题讨论】:

    标签: reactjs react-table


    【解决方案1】:

    您可以创建一个用于NoDataComponent 属性的新函数组件,而不是将noDataConst 作为变量。

    const NoDataConst = props => (
      <NoData noDataTitle="This is the dynamic title" {...props} />
    );
    
    class Parent extends React.Component {
      render() {
        return (
          <div>
            <ReactTable
              data={data}
              columns={columns}
              NoDataComponent={NoDataConst}
            />
          </div>
        );
      }
    }
    

    【讨论】:

    • 成功了——太棒了! ..我不明白{...props},这很容易解释还是我可以阅读的地方?当系统允许我时,我会在 6 分钟内接受这个答案
    • @NeilKelsey 太棒了!它叫做spread syntax and it's explained in this answer。
    猜你喜欢
    • 2011-09-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-10
    • 1970-01-01
    • 2019-08-25
    相关资源
    最近更新 更多