在提取调用填充Redux存储时反应延迟渲染

时间:2018-10-10 08:34:53

标签: javascript reactjs redux render

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

到目前为止,我想出的解决方案是使用呈现器首先调用的具有空数据的空JSON,然后在获取成功后调用现在填充的Redux存储,但是有没有更有效的方法?

1 个答案:

答案 0 :(得分:1)

您不想延迟任何渲染,这是其中的一部分,也不希望影响功能。

它在获取新数据(属性,状态)时进行渲染。

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

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

{
  "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>
}

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