Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/409.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 在fetch调用填充Redux存储时响应延迟渲染_Javascript_Reactjs_Redux_Render - Fatal编程技术网

Javascript 在fetch调用填充Redux存储时响应延迟渲染

Javascript 在fetch调用填充Redux存储时响应延迟渲染,javascript,reactjs,redux,render,Javascript,Reactjs,Redux,Render,是否有一种方法可以在进行获取调用以填充Redux存储时延迟Reacts render,以便在渲染从存储调用this.props时,数据已经存在。我有一个问题,render方法中的store调用正在调用当前为空对象的store,这会导致渲染崩溃 到目前为止,我提出的解决方案是生成一个带有空数据的空JSON,渲染首先调用空数据,然后在获取成功时调用现在填充的Redux存储,但是有没有更有效的方法?您不想延迟任何渲染这是一个部分或反应功能 它在获取新数据(道具、状态)时进行渲染 在您的情况下,您需要解

是否有一种方法可以在进行获取调用以填充Redux存储时延迟Reacts render,以便在渲染从存储调用this.props时,数据已经存在。我有一个问题,render方法中的store调用正在调用当前为空对象的store,这会导致渲染崩溃


到目前为止,我提出的解决方案是生成一个带有空数据的空JSON,渲染首先调用空数据,然后在获取成功时调用现在填充的Redux存储,但是有没有更有效的方法?

您不想延迟任何渲染这是一个部分或反应功能

它在获取新数据(道具、状态)时进行渲染

在您的情况下,您需要解决不同的“数据情况”

因此,首先,减速器应具有默认状态,即:

{
  "loading": false,
  "username": null,
  "isLoaded": false
}
现在,您可以在代码中处理不同的数据,并相应地呈现不同的视图

const YourComponent = props => {
  if (props.loading) {
    return <h1>loading</h1>
  }
  if (props.loaded && props.username==null) {
    return <h1>cant find user</h1>
  }
  return <h1>{props.username} is loaded</h1>
}
constyourcomponent=props=>{
如果(道具装载){
回装
}
if(props.loaded&&props.username==null){
返回找不到用户
}
返回{props.username}已加载
}

这只是一个示例,您的代码应该更简洁、更有条理:)

首先,默认结构必须在减速机中,然后在渲染中,你可以测试
this.props.stuff&&
,这样你就不会被压碎,你的组件只有在有有效值的情况下才会呈现这个部分。看看这篇文章:特别是productReducer.js代码,他在其中设置了加载真/假