【发布时间】:2018-12-22 19:32:34
【问题描述】:
我正在使用react-infinite-scroll 来呈现数据源。每当用户更改他们的设置时,我都想刷新数据源。
为此,我有一个InfiniteScroll 组件的关键道具。这个想法是每当用户更改他们的设置时
-
this.state.renderCount在setState中增加 1 -
React 注意到
InfiniteScroll的 key prop 不同,并从头开始重新渲染组件。<Content style={{ padding: "0px 20px" }}> <InfiniteScroll key={this.state.renderCount} style={{ width: "100%", height: "100%" }} pageStart={0} loadMore={this.loadPosts.bind(this)} hasMore={true} loader={<div>Loading....</div>} useWindow={false} > {listItems} </InfiniteScroll> </Content>
刷新代码在componentDidUpdate 中,如果我确定需要刷新,就会调用它:
this.setState({ renderCount: this.state.renderCount + 1 })
但是,组件并未重置。为什么是这样?
【问题讨论】:
-
我不确定这一点,但 React 对
key属性有一个特殊用途,以确保可以唯一标识兄弟姐妹。这可能是您的组件不刷新的原因。我会尝试使用不同的属性名称,看看是否按预期工作。
标签: javascript reactjs infinite-scroll react-props