【问题标题】:react router navigate links from rest api反应路由器从rest api导航链接
【发布时间】:2017-03-17 13:17:16
【问题描述】:

我是新手,在尝试浏览我的 api 页面时遇到了问题。我做了什么:http://pastebin.com/hxf9PJ8k 它在我看来完美无缺,但只显示第一个 api 页面。所有用户配置文件的链接也有效,只需将 id 添加到 api 链接即可。因此,我的 api 返回给我的对象实际上是用户,以及数据库中用户的总数以及指向下一页的链接(如果存在或为空,则为上一页或为空)。现在我无法理解如何使用这些链接来创建 2 个按钮——下一个和上一个。如何将整个链接或仅在 page= 旁边的部分传递给用户道具并提出 xhr 请求。 Api 示例视图: count: 2302 next: "http://localhost:8080/instant/api/?page=2" previous:
results:
0: Object 1: Object 2: Object
提前致谢!

【问题讨论】:

    标签: reactjs react-router


    【解决方案1】:

    基本上建议你做的是创建一个 currentPage 变量,这使你的逻辑非常简单。

    为上一个和下一个按钮创建一个单独的组件来处理分页条件,处理父组件上的任何点击事件以保持简单。

    class PrevBtn extends React.Component {
        constructor(props){
            super(props);
            this.props.clickHandler = this.props.clickHandler.bind(this);
        }
    
        render() {
            let button = null;
            const {currentPage} = this.props;
    
            if(currentPage>1){
              button = <a onClick={this.props.clickHandler}>Prev</a>
            }else{
              button = <a disabled="disabled">Prev</a>
            }
            return(<div>{button}</div>)
          }
        }
    

    我只是在codePen给你做了一个例子,但是我只是做了prev按钮逻辑,你可以弄清楚如何做next按钮组件。

    【讨论】:

    • 感谢您的回答。我是一个真正的新手,我不知道如何将用户组件的下一个和上一个变量的状态传递给那些子组件。问题是我不能使用来自 api 的链接。例如,指向下一页的链接是 domain/api/?page=2 — 我如何获取此链接并将其传递给用户而不是当前链接并使用来自 api 的新数据重新加载用户组件?对不起,我的解释含糊不清。
    • 我建议不要传递上一个和下一个变量,而不是使用处理当前页面的变量,然后根据一些导航条件计算上一个或下一个是否要启用用户,正如我之前解释的示例(如果 currentPage>1),每次您的状态更改时,您都应该从您的 API 获取相应的数据
    • 不要在链接、URL 方面进行精简,因为这将在您的 API 客户端中配置,请考虑当前页面
    猜你喜欢
    • 1970-01-01
    • 2016-04-10
    • 1970-01-01
    • 2017-04-16
    • 1970-01-01
    • 1970-01-01
    • 2020-10-27
    • 2019-09-27
    • 2022-11-14
    相关资源
    最近更新 更多