reactjs - 在从 api 获取新数据之前,Redux 状态之前的数据显示几秒钟
问题描述
我正在使用引导选项卡在组件中显示两个列表数据。一个用于已批准数据的选项卡,另一个用于待处理数据。我正在调用相同的两个 api 来显示两个选项卡数据,但使用 useSelector 使用相同的减速器状态。
对两个选项卡数据更改使用“userData”选择器时出现问题。在第一次加载时,它为待处理的用户获取数据。在已批准的选项卡上单击,3 秒钟显示的数据与已处于减速器状态的待处理选项卡的数据相同,并在从 api 获取批准的数据后刷新选项卡和列表。如何避免这种情况?我们可以先显示空数据而不刷新选项卡和列表吗?这是示例代码。
const [status, setStatus] == useState('Pending');
派遣电话:
const getUsers = (sortData, page, limit, searchword, status) =>
dispatch(_getUsers(sortData, page, limit, searchword, status));
选择器:
const userData = useSelector(state => state.UserReducer.userList);
The data will be like this:
userData = {
listData: [],
activeTabCount: 20,
nextTabCount: 15
}
选项卡部分:
<Tabs defaultActiveKey="Pending" onSelect={(e) => handleSelect(e)}>
<Tab eventKey="Pending" title={"Pending ("+status == "Pending" ? userData.activeTabCount : userData.nextTabCount +")"}>
{userData.listData.map((item) => {
//List pending items with sort and pagination
});
}
</Tab>
<Tab eventKey="Approved" title={"Approved("+status == "Approved" ? userData.activeTabCount : userData.nextTabCount+")"}>
{userData.listData.map((item) => {
//List approved items with sort and pagination
});
}
</Tab>
</Tabs>
const handleSelect = (key) => {
if (key === "Pending")
setStatus("Pending");
//Api call
else
setStatus("Approved");
//Api call
}
解决方案
推荐阅读
- json - 如何获取位于 ArrayType 列中的字段名称
- apache-storm - org.apache.storm.utils.NimbusLeaderNotFoundException:无法从种子主机中找到领导灵气
- ionic-framework - Ionic - 运行时错误 this.fba.logEvent(...).then 不是函数
- wordpress - 邮件黑猩猩每次都向订阅者发送所有提要
- istio - Istio Kafka Wire 协议支持
- tornadofx - TorndaoFx tableview 列可以使用日期选择器作为输入法吗?
- android - 在Android中打开飞机(飞机)模式时如何以编程方式打开wifi?
- javascript - Jquery - 联系人字段交互
- firebase - 检索 Firebase 分析事件的完整详细信息
- here-api - 是什么导致 heremaps RoutingAPI 调用中的系统错误?