我感兴趣的是让我的QuestionList.js
组件在按下按钮时加载数据,但是我不希望它从api加载所有数据,每个屏幕只从这个由10个对象组成的数组加载一个对象。
我相信我有一个操作顺序的问题,我需要一些帮助解决。
我知道如何使用axios
和componentWIllMount()
从API中获取数据,这将在应用程序启动时获取我的数据,但我不确定这是否是我想要做的,因为它是一个测试应用程序。
因此,我只希望在用户按下按钮时获取这个对象数组。
还是我想错了?我是否应该继续进行这种配置:
import React, { Component } from 'react';
import { View, Text } from 'react-native';
import axios from 'axios';
class QuestionList extends Component {
componentWillMount() {
axios
.get('https://opentdb.com/api.php?amount=10&difficulty=hard&type=boolean')
.then(response => console.log(response));
}
render() {
return (
<View>
<Text>Question List!!!</Text>
</View>
);
}
}
export default QuestionList;
哪个在工作,然后当用户按下一个按钮,然后让它第二次加载,然后它就会实际呈现到屏幕上?
如果用户在按下按钮之前不需要数据,那么我甚至应该使用componentWillMount()
生命周期方法吗?
请帮帮忙。
发布于 2018-05-13 01:10:48
用户体验友好的做事方式是在用户请求查看数据之前准备好所需的数据。这样,每次屏幕变化时,用户都不必等待加载数据。
如果您的数据很大,那么只请求下一个屏幕数据更符合逻辑。这样,用户就不必等待数据加载,而应用程序在启动时就可以更早地准备就绪。例如,在应用程序加载时加载前2项,当用户导航到第二项时加载第三项,在第3项上加载第4项等等。
如果您的数据不是很大,并且请求完成得相当快,那么一次访问就会减少对服务器的请求,并具有更高的性能要求、更少的带宽切换等。
这取决于您的应用程序需求和您的决定。
https://stackoverflow.com/questions/50313861
复制相似问题