召回组件以呈现分页

时间:2017-02-12 10:40:18

标签: javascript reactjs

我不明白这里的逻辑。这段代码用于分页,当它点击它时会激活这个功能。

componentDidUpdate() {
    const { location } = this.context;
    const { query } = this;
    if (!isEqual(query, location.query)) {
        this.query = clone(location.query);
        API.fetchAll( assign({}, query, {
            offset  : this.getOffset(),
            limit   : page
        }) );
    }
}

但猜测我真的不知道它做了什么,你们有什么线索吗?

1 个答案:

答案 0 :(得分:1)

当您的组件收到新状态或新道具时,将执行此方法。

它从this.context(所以this.context.location)获取位置属性,并从this查询属性(所以this.query)。

如果来自this的查询与位置查询不同 - 可能是因为位置已更改(代码中的信息不足,但我猜测网址已更改)您是重新将新位置的查询分配给this.query

当更新查询属性时,您正在对新资源进行API调用。

assign中的fetchAll方法可能来自Object.assign。因此,您正在使用属性查询,偏移量和页面创建新对象。