Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何处理单个项目的加载重复状态以显示加载指示器_Javascript_Reactjs_Redux - Fatal编程技术网

Javascript 如何处理单个项目的加载重复状态以显示加载指示器

Javascript 如何处理单个项目的加载重复状态以显示加载指示器,javascript,reactjs,redux,Javascript,Reactjs,Redux,对于部分加载的数据,如何处理异步状态(如在redux存储中加载) 假设您有一个redux存储,其中包含一个用户缩减器,用于保存每个已加载的用户,最初您有10个已完全加载的用户(其ID、名称等)+接下来的10个未完全加载的用户ID,需要在稍后的步骤中获取 然后,通过一个操作,您可以通过获取id加载第11个用户,并需要显示该请求的加载 您是否会将所有20个用户作为1个javascript对象/用户存储在一个数组中,其中每个条目都有一个isLoading变量,并通过id读取/修改该变量?或者对于这个用

对于部分加载的数据,如何处理异步状态(如在redux存储中加载)

假设您有一个redux存储,其中包含一个用户缩减器,用于保存每个已加载的用户,最初您有10个已完全加载的用户(其ID、名称等)+接下来的10个未完全加载的用户ID,需要在稍后的步骤中获取

然后,通过一个操作,您可以通过获取id加载第11个用户,并需要显示该请求的加载

您是否会将所有20个用户作为1个javascript对象/用户存储在一个数组中,其中每个条目都有一个isLoading变量,并通过id读取/修改该变量?或者对于这个用例还有其他的方法吗

非常感谢

react redux示例:
  • 如果我们从数据库加载数据,则over loader将为true,当我们在componentWillReceiveProps中获取数据时,则loader将为false
/**
*主容器:主容器的组件
*它与redux商店相连
* 
*/
从“React”导入React,{Component};
从'react redux'导入{connect};
从“../actions”导入{getBooks,clearBook};
从“../widgetsUI/book_item”导入BookItem;
类HomeContainer扩展组件{
//装载机
状态={
加载:正确
}
//从数据库获取书籍
组件willmount(){
this.props.dispatch(getBooks(5,0,'desc'))
}
//如果我们收到新道具
组件将接收道具(下一步){
//console.log(nextrops)
这是我的国家({
加载:错误
})
} 
//呈现书籍项目
renderItems=(书籍)=>(
书单?
books.list.map(项目=>(
))
:null
)
//加载更多按钮
加载更多=()=>{
这是我的国家({
加载:正确
})
const count=this.props.books.list.length;
this.props.dispatch(getBooks(5,count,'desc',this.props.books.list))
}
render(){
if(this.state.loading){
返回加载。。。
}
返回(
{this.renderItems(this.props.books)}
加载更多
)
}
}
函数MapStateTops(状态){
//console.log(状态)
返回{
图书:国家图书
}
}

导出默认连接(MapStateTops)(HomeContainer)我设置了每个记录的发布状态。在这种情况下,
.isPatching
布尔值被添加到存储中的每条记录中,在开始时设置为true,在结束时设置为false。每个记录状态。

您可以创建一个Http拦截器,它将在每次调用Http请求时调用,一旦调用,您需要调用加载程序,一旦收到响应,您需要停止它,这样您就不需要手动处理每个请求。默认方法是让列表组件获取包含id的基本用户数据列表,并允许详细信息组件按id获取附加信息。您可以让详细信息组件在每次装载时获取附加信息,也可以先检查附加信息是否可用(可以使用您建议的标志,也可以只检查某个字段(如果它是必填字段的话)。加载状态可以保持在细节组件的本地状态,这取决于它在加载时是否实际获取数据。@DhavalPatel这主意不错,但后台也有很多正在进行的请求,我不想通过显示加载指示器来迷惑用户those@trixn谢谢,我只是想澄清一下,你能用t提出这个要求吗he react component?我不想这样做,而是在action creator中,因为我也可以在另一个组件中使用它谢谢,但我熟悉使用标志来显示加载状态,我的问题更多的是关于在数组中可以显示lo的reducer-like users对象中加载单个项的指示器的最佳实践每个单用户条目的加载指示器尝试此操作您可以构建自定义占位符并处理加载。演示抱歉,但我认为您没有理解我的观点,我尝试进一步描述:我不关心如何显示加载,而是关心架构选择如何以“最佳”方式在我的redux存储中构建加载标志