在使用 @loadable/component 渲染之前等待 promise

P. 尼克

我将库@loadable/component与反应路由一起使用,用于代码拆分等。

const AsyncViewItem = loadable(() => import("./modules/Items/View/View"));

<Router>
    <Switch>
        <Route exact path="/items/:item" render={(props) => <AsyncViewItem {...props} fallback={LoadingPage} />} />
    </Switch>
</Router>

在我的AsyncViewItem课堂上,我需要做出一些承诺来显示我需要的数据。

export default class View extends React.Component {
    constructor(props) {
        super(props);

        this.param = this.props.match.params.item;

        this.state = {
            chartOffers: [],
            item: []
        };
    }

    componentDidMount() {
        equipmentService.getOne(this.param)
            .then((item) => {
                offerService.getChartMonth(this.param)
                    .then((data) => {
                        this.setState({ chartOffers: data, item: item[0] });
                    })
                    .catch((error) => {
                        return console.error(error);
                    }); 
            })
            .catch((error) => {
                return console.error(error);
            })
    }

    render() {
        const item = this.state.item;
        return (<div>{item.name}</div>);
    }
}

我想知道的是如何LoadingPage在这些承诺尚未返回任何内容(或尚未设置状态值)的情况下进行回退显示?因为,在加载时,我会看到一个空的 div,这对用户体验来说不是很愉快。

蓝先生

你可以把if里面的render()功能,例如:

 render() {
        const item = this.state.item;
        if(item.length === 0) {
          return <div>loading...</div>;
        }
        return (<div>{item.name}</div>);
    }

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在Promise中使用等待

渲染似乎在 componentDidMount 之前触发(使用异步/等待)

在promise内使用异步/等待

使用Promise等待调用的函数并在继续之前完成其预期的操作

从 promise 重构为异步等待并使用分页

等待 http post 使用 promise 结束

正确使用Promise等待和异步功能

在异步/等待中使用Promise

Javascript使用promise等待条件为真

使用Express异步/等待返回Promise {<pending>}

使用Promise语法进行异步/等待

如何使用 promise 来等待函数执行

在构造依赖项-或ngOnInit之前,如何使Angular 5等待Injectable的构造函数中使用的Promise解析?

如何在返回新的Promise之前等待Promise解决?

javascript async等待使用Promise使用onsubmit提交表单

在使用 async-await 在 nodejs 中渲染模板之前,等待 firebase 存储数据库拉取完成

Typescript-在函数返回之前等待promise解决

如何在恢复功能之前等待JavaScript Promise解决?

在try块中等待promise解析之前,调用finally块

reactjs / react-native在继续之前等待promise解析

在async.each中的回调之前等待promise

如何讓 Javascript 在發送請求之前等待 Promise?

使用 React 和 Jest,如何模拟需要等待的 Promise?

避免使用Promise.all等待每个单独的循环迭代

异步等待仅与promise一起使用吗?

使用Promise.all的异步等待和瓶颈速率限制

如何在使用$ resource时等待promise返回

使用已解决的promise async等待更新对象数组

如何将渲染延迟到promise的then()完成之前?