在反应中返回 Link 作为 dataFormatter 时的不变冲突错误
Invariant Violation error when returning a Link as dataFormatter in react
在 table 列标题中,我想 return 链接导航到每个标题的编辑模式。我正在使用 react-bootstrap-table 并在我的组件
的构造函数中创建了一个自定义数据格式化程序
class Grid extends Component {
constructor(props) {
super(props);
this.anchorFormatter = (cell, row, slug) => {
let link = "/"+slug;
return (
<Link to={link}>
{cell}
</Link>
)
}
然后我将此数据格式化为 table
<TableHeaderColumn isKey dataField="title" dataSort dataFormat={ this.anchorFormatter }>Title</TableHeaderColumn>
这是得到这个错误
Uncaught Invariant Violation: Element type is invalid: expected a string (for built-in components) or a class/function (for composite components) but got: object.
Check the render method of `TableBody`.
第二部分是如何将 slug 的值传递给数据格式化程序?我从 get 请求中得到这样的数据 API Call
{
"title": "Experiments in DataOps",
"status": true,
"publish_date": "2020-01-29",
"slug": "experiments-in-dataops"
},
我必须使用原始 html 标签而不是 link 才能工作,即
const anchorFormat = (cell,row) => {
let link = '#/blogs/' + row.slug;
return ( <div><a className="nav-link" href={link}>{cell}</a></div>);
}
另一种方法是创建一个class或函数,然后将其作为组件使用,这里我创建组件
class BlogAnchor extends Component {
constructor(props) {
super(props);
}
render() {
return (
<Link to={this.props.link}> {this.props.linkText} </Link>
);
}
}
然后在网格中 class 我有一个函数
anchorFormatter(cell, row) {
let link = "blogs/" + row.slug;
return <BlogAnchor link={link} linkText={cell} />;
}
也注册在Grid的构造函数中class
this.anchorFormatter = this.anchorFormatter.bind(this);
而table列指的是这个函数
<TableHeaderColumn isKey dataField="title" dataSort dataFormat {this.anchorFormatter}>Title</TableHeaderColumn>
在 table 列标题中,我想 return 链接导航到每个标题的编辑模式。我正在使用 react-bootstrap-table 并在我的组件
的构造函数中创建了一个自定义数据格式化程序class Grid extends Component {
constructor(props) {
super(props);
this.anchorFormatter = (cell, row, slug) => {
let link = "/"+slug;
return (
<Link to={link}>
{cell}
</Link>
)
}
然后我将此数据格式化为 table
<TableHeaderColumn isKey dataField="title" dataSort dataFormat={ this.anchorFormatter }>Title</TableHeaderColumn>
这是得到这个错误
Uncaught Invariant Violation: Element type is invalid: expected a string (for built-in components) or a class/function (for composite components) but got: object.
Check the render method of `TableBody`.
第二部分是如何将 slug 的值传递给数据格式化程序?我从 get 请求中得到这样的数据 API Call
{
"title": "Experiments in DataOps",
"status": true,
"publish_date": "2020-01-29",
"slug": "experiments-in-dataops"
},
我必须使用原始 html 标签而不是 link 才能工作,即
const anchorFormat = (cell,row) => {
let link = '#/blogs/' + row.slug;
return ( <div><a className="nav-link" href={link}>{cell}</a></div>);
}
另一种方法是创建一个class或函数,然后将其作为组件使用,这里我创建组件
class BlogAnchor extends Component {
constructor(props) {
super(props);
}
render() {
return (
<Link to={this.props.link}> {this.props.linkText} </Link>
);
}
}
然后在网格中 class 我有一个函数
anchorFormatter(cell, row) {
let link = "blogs/" + row.slug;
return <BlogAnchor link={link} linkText={cell} />;
}
也注册在Grid的构造函数中class
this.anchorFormatter = this.anchorFormatter.bind(this);
而table列指的是这个函数
<TableHeaderColumn isKey dataField="title" dataSort dataFormat {this.anchorFormatter}>Title</TableHeaderColumn>