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