数据内部的反应表渲染组件

时间:2019-09-10 20:01:05

标签: reactjs react-table

我正在尝试使用react-table包(https://www.npmjs.com/package/react-table#example)在数据内添加组件

使用包自述文件中的示例,我试图使用一个精美的组件将图像添加到单元格: 使用**跳出代码... 我也尝试过:

imageUrl:{<PlaceholderImage width={60} textColor="#fff" text="Image"/>}

示例:

import ReactTable from 'react-table'
import 'react-table/react-table.css'
**import { PlaceholderImage } from 'react-placeholder-image'**

render() {
  const data = [{
    name: 'Tanner Linsley',
    age: 26,
**imageUrl:<PlaceholderImage width={60} textColor="#fff" text="Image"/>,**
    friend: {
      name: 'Jason Maurer',
      age: 23,
    }
  },{
    ...
  }]

  const columns = [{
    Header: 'Name',
    accessor: 'name' // String-based value accessors!
  }, {
    Header: 'Age',
    accessor: 'age',
    Cell: props => <span className='number'>{props.value}</span> // Custom cell components!
  }, {
    Header: ' ',
    accessor: 'imageUrl', // String-based value accessors!
    maxWidth: 70,
    minWidth:70,
  },{
    id: 'friendName', // Required because our accessor is not a string
    Header: 'Friend Name',
    accessor: d => d.friend.name // Custom value accessors!
  }, {
    Header: props => <span>Friend Age</span>, // Custom header components!
    accessor: 'friend.age'
  }]

  return <ReactTable
    data={data}
    columns={columns}
  />
}

2 个答案:

答案 0 :(得分:7)

除了@Clarity的答案外,还可以在Cell的属性级别访问单元格的值:

const columns = [
  {
    Header: "Image",
    accessor: "imageUrl",
    maxWidth: 70,
    minWidth: 70,
    Cell: ({ cell: { value } }) => (
      <img
        src={value}
        width={60}
      />
    )
  }
];

答案 1 :(得分:1)

您正在将react组件传递到需要字符串的数据字段。尝试通过Cell道具自定义您的单元格:

const columns = [
  {
    Header: "Image",
    accessor: "imageUrl",
    maxWidth: 70,
    minWidth: 70,
    Cell: props => <PlaceholderImage width={60} textColor="#fff" text="Image" />
  }
];