如何在JSON响应完成之前开始渲染React Native

时间:2020-05-05 15:59:17

标签: react-native

我正在使用本地本机开发新闻应用程序,问题是启动时间花费了太多时间(最初加载大约需要3秒,主屏幕显示需要5秒)。 我有36篇文章,并且json响应很大(3000行)。经过分析,我发现原因是等待获得文章的功能承诺的等待时间(.then之后)。

获取文章的功能:

export async function getArticles(){

    try {
        let articles = await fetch(``);
        let result = await articles.json();
        return result;

    } catch (error) {
        throw error
    }
}

显示文章的home.js是:

export class HomeScreen extends PureComponent {
    constructor(props) {
        super(props);
        this.state = {
            isLoading: true,
            data: null,
            isError: false,
        }
    }
    componentDidMount() {
        getArticles().then(data => {
            this.setState({
                isLoading: false,
                data: data
            })
        }, error => {
            Alert.alert("Error", "Something happend, please try again")
        })
    }

我试图通过提取特定字段来简化响应主体,但没有区别,而且我不知道如何从url本身中仅获取简单数目的文章,例如per_page或其他内容。 您能否建议如何在等待JSON响应完成之前开始渲染?。

0 个答案:

没有答案