首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用react-bootstrap table-2将列中的值显示为链接?

如何使用react-bootstrap table-2将列中的值显示为链接?
EN

Stack Overflow用户
提问于 2020-08-03 19:19:27
回答 1查看 1.6K关注 0票数 2

我正在使用React Table (react bootstrap table-2)在页面中显示一个表,并用从数据库API调用的数据填充它。我希望将其中一列中的值显示为链接( hrefs)。此特定列仅包含URL。如何在react bootstrap table-2中实现它?

代码语言:javascript
复制
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;

这是我尝试过的:

代码语言:javascript
复制
{
datafield : "report",
text : "Show report",
accessor : "link",
Cell : (e) => <a href={e.value}> {e.value} </a>
},

虽然"show report“的值目前显示为文本,但我在上面的解决方法中没有收到任何错误。有没有人能为此提供任何解决方案,或者是否有任何其他方法来实现此功能?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-08-03 21:51:01

我循环执行docsformatter可能会对您有所帮助。

代码语言:javascript
复制
      {
        dataField: 'report',
        text: 'Show report',
        formatter: (cell, row, rowIndex, extraData) => (
          <div>
            <a href={row.value}> {row.value} </a>
          </div>
        )
      },
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63228471

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档