当前位置: 首页 > 知识库问答 >
问题:

如何在react中显示分页表

西门振
2023-03-14

我想在页面上的React中呈现一个表。表包含很多行,所以我想应用分页。就像有人单击第2页链接(/open\u alerts/?page=2)时一样,table会在保持同一页的同时获取下一行,而只是更改数据。但我面临的问题是,我无法知道AlertsTable组件中页面参数的值。我看到了一些useParams钩子,但这在类组件中是不允许的。我怎样才能实现我想要的东西?

主页位于/并且包含指向/打开\警报/页面的链接。App.js:

    <Router>
    <Switch>
      <Route exact path="/">
        <Link to="/open_alerts/">Open Alerts</Link>
        <div className="Charts">
          <AlertsChart id="alerts-chart"/>
          <RegionsChart id="regions-chart"/>
        </div>
      </Route>
      <Route path="/open_alerts/"> 
        <Link to="/">Home page</Link>       
        <AlertsTable />
      </Route>
    </Switch>
    </Router>

如何在AlertsTable组件中知道页码,以便在对服务器的API调用中使用页码来获取分页响应?

alerts_table.js:

    export class AlertsTable extends React.Component {
    .
    . // code here
    .
    render() {
        return (
          <div>
            <h1>
              Open alerts
            </h1>
            { !this.state.isfetched ? <p>Fetching open alerts</p>: 
            <div>
              <AlertsRenderer alerts={this.state.alerts}/>
              <PaginatedButton pages={this.state.pages_count} />
            </div> }
          </div>
        );
      }
    }

paginated_button.js:

    export function PaginatedButton(props) {
      return (
        <Router>
        {props.pages.map(page_no => (
          <button>
            <Link exact to={"/open_alerts/?page="+(parseInt(page_no)+1)}>{page_no+1}</Link>
          </button>
        ))}
        </Router>
    )}

AlertsRenderer只是一个功能组件,它使用HTML表格标记从道具和显示器获取警报。

共有1个答案

呼延修然
2023-03-14

useParams对您没有任何帮助,因为这是路由的matchparams,与URL的查询字符串参数无关。

您必须处理查询字符串,该字符串可以从位置路由属性访问。

{
  key: 'ac3df4', // not with HashHistory!
  pathname: '/somewhere',
  search: '?some=search-string',
  hash: '#howdy',
  state: {
    [userDefined]: true
  }
}

使用URLSearchParams处理查询字符串。

const search = this.props.location.search;
const queryParams = Object.fromEntries(new URLSearchParams(search));
const search = "?page=2";
const queryParams = Object.fromEntries(new URLSearchParams(search));

console.log(queryParams);
 类似资料:
  • 在你把我和另一个类似的问题联系起来之前,比如这个或那个。我要说的是,我完全按照答案所说的做了,但我的gif不会像它应该做的那样动画化(尽管它是显示出来的)。 下面是我在一个函数中所做的操作,该函数通过主应用程序函数堆栈显示。导航容器和堆栈中的屏幕。导航器。(我使用React导航在屏幕上移动,这里的上下文是按下一个按钮,它显示DetailsScreen函数的内容) 这将显示我的gif的第一个静态图像

  • 它与文件一起工作很好,但是当我使用文件时,它是空的。我在某处读到了将重命名为,但它只显示一帧动画gif而没有动画。有什么想法吗?

  • 如何在jasper子报告中显示当前页码?我只做了第一页,变量如下:$V{page_NUMBER}和“(”$V{page_COUNT}“)”,但我们如何在所有子报告中显示?

  • 我尝试过构建本机用户界面组件,但通常是成功或失败的。该组件似乎没有以react-本机呈现。 不过,对于这个问题,我特别尝试在react-native中渲染一个Android片段,但没有显示任何内容。示例代码: 使用上面的视图管理器,视图应该在的地方甚至没有被涂成白色,这意味着框架布局本身没有被渲染。 我做错了什么?

  • 问题内容: 我正在尝试从网页中提取一小部分并加载到Webview中,我尝试按照链接中给出的解决方案进行操作,但是它不起作用 使用getElementsByClass(“ darewod”)提取数据 我已经尝试了以下两种方法来加载到webview,但似乎不起作用,它只是在UI上打印HTML 你能告诉我我是否在这里想念任何东西吗? 问题答案: 您正在加载没有适当结构的 html代码(因此,所有定义都将

  • 我正在做一个spring boot项目,使用OPENAPI作为api文档的工具。 我试图用直观的输入(page-pageSize-sort)覆盖UI中可分页json对象的显示 这是可行的,但是参数页面、页面大小和排序被添加到所有方法中。我如何才能使这只适用于需要可分页的方法?