在收藏页面取消了pupular或者trending对应的元素时,会出现从favoritePage返回到popular或者trending页面时,列表渲染不一致

来源:7-9 Favorite(收藏)模块列表页面具体实现-2

慕用2216972

2018-05-17

在收藏页面取消了pupular或者trending对应的元素的收藏时,会出现从favoritePage返回到popular或者trending页面时,列表的第一个元素的收藏图片不会被重新渲染,依然显示被收藏的状态(如果取消的是列表中的非第一个元素的收藏,那么返回popular或者trending页面是,被取消收藏的元素的收藏图片正常显示,显示未被收藏的状态)

写回答

1回答

CrazyCodeBoy

2018-05-22

  1. 收藏页面当收藏状态发生改变后会发送通知:

onFavorite(item, isFavorite) {
    ActionUtils.onFavorite(this.favoriteDao, item, isFavorite, this.props.flag);
    ArrayUtils.updateArray(this.unFavoriteItems, item);
    if (this.unFavoriteItems.length > 0) {
        if (this.props.flag === FLAG_STORAGE.flag_popular) {
            DeviceEventEmitter.emit('favoriteChanged_popular');
        } else {
            DeviceEventEmitter.emit('favoriteChanged_trending');
        }
    }
}

2. 最热和趋势页面要订阅对应的通知做刷新操作:

componentDidMount() {
    super.componentDidMount();
    this.listener = DeviceEventEmitter.addListener('favoriteChanged_popular', () => {
        this.isFavoriteChanged = true;
    });
    this.loadData();
}

3. 具体实现可参考课程源码;

0
0

React Native技术精讲与高质量上线App开发

一个真实的上线项目,一次完整的开发过程,全面掌握React Native技术

1577 学习 · 727 问题

查看课程