如何使用 react-bootstrap table-2 将列中的值显示为链接?
How to display value in a column as links using react-bootstrap table-2?
我正在使用 React Table(react bootstrap table-2)在页面中显示 table 并使用从数据库调用的数据填充它 API。我想将其中一列中的值显示为链接(hrefs)。此特定列仅包含 URL。如何在 React bootstrap table-2 ?
中实现这个
import React, { useState, useEffect } from "react";
import logo from "./logo.svg";
import "./App.css";
import axios from "axios";
import BootstrapTable from "react-bootstrap-table-next";
import paginationFactory from "react-bootstrap-table2-paginator";
import * as ReactBootstrap from "react-bootstrap";
import filterFactory, { textFilter } from "react-bootstrap-table2-filter";
import ToolkitProvider, { Search } from "react-bootstrap-table2-toolkit";
const App = () => {
const [list, setList] = useState([]);
const [loading, setLoading] = useState(false);
const { SearchBar } = Search;
const getListData = async () => {
try {
const data = await axios.get("http://localhost:4000/results");
console.log(data);
setList(data.data);
setLoading(true);
} catch (e) {
console.log(e);
}
};
const columns = [
{ dataField: "dept_name", text: "DepartMent" },
{ dataField: "Tr_type", text: "Transmission Type", sort: true },
{ dataField: "E_type", text: "Entry Type", sort: true },
{ dataField: "Msg_des", text: "Message Description", sort: true },
{ dataField: "cr_date", text: "Created Date", sort: true },
{ dataField: "ch", text: "Channel", sort: true },
{ dataField: "Del", text: "Delivered", sort: true },
{ dataField: "fl", text: "Failed", sort: true },
{ dataField: "report", text: "Show Detailed Report" },
];
useEffect(() => {
getListData();
}, []);
return (
<div className="App">
{loading ? (
<ToolkitProvider keyField="name" data={list} columns={columns} search>
{(props) => (
<div>
<div className="serSec">
<h3 className="hdrOne">Search:</h3>
<SearchBar {...props.searchProps} />
</div>
<div class="table-responsive">
<BootstrapTable
{...props.baseProps}
filter={filterFactory()}
pagination={paginationFactory()}
/>
</div>
</div>
)}
</ToolkitProvider>
) : (
<ReactBootstrap.Spinner animation="border" />
)}
</div>
);
};
export default App;
这是我试过的:
{
datafield : "report",
text : "Show report",
accessor : "link",
Cell : (e) => <a href={e.value}> {e.value} </a>
},
尽管值“show report”目前显示为文本,但上述变通方法没有出现任何错误。任何人都可以提供任何解决方法吗?或者是否有任何其他方法来实现这个?
我循环 docs。 formatter
可能对你有帮助。
{
dataField: 'report',
text: 'Show report',
formatter: (cell, row, rowIndex, extraData) => (
<div>
<a href={row.value}> {row.value} </a>
</div>
)
},
我正在使用 React Table(react bootstrap table-2)在页面中显示 table 并使用从数据库调用的数据填充它 API。我想将其中一列中的值显示为链接(hrefs)。此特定列仅包含 URL。如何在 React bootstrap table-2 ?
中实现这个import React, { useState, useEffect } from "react";
import logo from "./logo.svg";
import "./App.css";
import axios from "axios";
import BootstrapTable from "react-bootstrap-table-next";
import paginationFactory from "react-bootstrap-table2-paginator";
import * as ReactBootstrap from "react-bootstrap";
import filterFactory, { textFilter } from "react-bootstrap-table2-filter";
import ToolkitProvider, { Search } from "react-bootstrap-table2-toolkit";
const App = () => {
const [list, setList] = useState([]);
const [loading, setLoading] = useState(false);
const { SearchBar } = Search;
const getListData = async () => {
try {
const data = await axios.get("http://localhost:4000/results");
console.log(data);
setList(data.data);
setLoading(true);
} catch (e) {
console.log(e);
}
};
const columns = [
{ dataField: "dept_name", text: "DepartMent" },
{ dataField: "Tr_type", text: "Transmission Type", sort: true },
{ dataField: "E_type", text: "Entry Type", sort: true },
{ dataField: "Msg_des", text: "Message Description", sort: true },
{ dataField: "cr_date", text: "Created Date", sort: true },
{ dataField: "ch", text: "Channel", sort: true },
{ dataField: "Del", text: "Delivered", sort: true },
{ dataField: "fl", text: "Failed", sort: true },
{ dataField: "report", text: "Show Detailed Report" },
];
useEffect(() => {
getListData();
}, []);
return (
<div className="App">
{loading ? (
<ToolkitProvider keyField="name" data={list} columns={columns} search>
{(props) => (
<div>
<div className="serSec">
<h3 className="hdrOne">Search:</h3>
<SearchBar {...props.searchProps} />
</div>
<div class="table-responsive">
<BootstrapTable
{...props.baseProps}
filter={filterFactory()}
pagination={paginationFactory()}
/>
</div>
</div>
)}
</ToolkitProvider>
) : (
<ReactBootstrap.Spinner animation="border" />
)}
</div>
);
};
export default App;
这是我试过的:
{
datafield : "report",
text : "Show report",
accessor : "link",
Cell : (e) => <a href={e.value}> {e.value} </a>
},
尽管值“show report”目前显示为文本,但上述变通方法没有出现任何错误。任何人都可以提供任何解决方法吗?或者是否有任何其他方法来实现这个?
我循环 docs。 formatter
可能对你有帮助。
{
dataField: 'report',
text: 'Show report',
formatter: (cell, row, rowIndex, extraData) => (
<div>
<a href={row.value}> {row.value} </a>
</div>
)
},