react+immutable.js数据闪现的问题

发布于 2022-09-11 18:48:26 字数 2467 浏览 37 评论 0

在使用了immutable后,当数据尚未加载完成的时候,会出现immutable数据结构中的size等

这是父组件的代码
class City extends Component {

componentDidMount(){
    this.props.getHotCity();
    this.props.getGroupCity();
}
render() {
    const {hotCities, groupCities} = this.props;
    const Groups = () => {
        if(!groupCities){
            return null;
        }else {
            let keyArr = Object.keys(groupCities).sort();
            return (
                    keyArr.map((item, index) => {
                        return (
                                <Cities list={groupCities[item]} title={item} key={index} isHot={false} isFirst={index} />
                        )
                    })
            )
        }
    };
    return (
            <div>
                <Header />
                <Nav />
                <Cities list={hotCities} title='热门城市' isHot={true} />
                <Groups />
            </div>
    )
}

}
const mapProps = (state) => ({

hotCities: state.getIn(['city', 'hotCities']),
groupCities: state.getIn(['city', 'groupCities'])

});

子组件代码
class Cities extends Component {

render () {
    const {list, title, isHot, isFirst} = this.props;
    const Item = () => {
        if(!list) {
            return null;
        }else {
            return (
                    list.map((item, index) => {
                        return (
                                <Link to={{pathname: `/city/${item.id}`}} key={index} className={`${styles.list_item} ${isHot ? styles.hot_text_color : ''}`} >{item.name}</Link>
                        )
                    })
            )
        }
    };
    return (
            <div className={styles["list-container"]}>
                <p className={styles.list_title}>{title} {isFirst === 0 ? '(按字母排序)' : ''}</p>
                <ul className={styles.list_box}>
                    <Item list={list} />
                </ul>
            </div>
    )
}

}
clipboard.png

在页面上的效果如下(尚未加载出数据的时候)

clipboard.png
数据加载完成

clipboard.png

想要的效果就是在数据没有加载完成不显示,这样的话怎么处理呢?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文