我正在使用本机反应开发新闻应用程序,问题是启动时间花费了太多时间(最初加载大约 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 响应完成之前如何开始渲染?