Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/440.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.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 是否有更干净的方法停止初始加载时的React渲染?_Javascript_Reactjs - Fatal编程技术网

Javascript 是否有更干净的方法停止初始加载时的React渲染?

Javascript 是否有更干净的方法停止初始加载时的React渲染?,javascript,reactjs,Javascript,Reactjs,因此,我的react类调用json响应,然后呈现 但目前,该类将在初始加载时呈现,然后在响应返回时再次呈现 为了避开这个问题,我必须这样做- componentDidMount: function() { axios.get....... .then(res => { const jobs = res.data; this.setState({ jobs }); }); }, r

因此,我的react类调用json响应,然后呈现

但目前,该类将在初始加载时呈现,然后在响应返回时再次呈现

为了避开这个问题,我必须这样做-

componentDidMount: function() {

        axios.get.......
          .then(res => {
            const jobs = res.data;
            this.setState({ jobs });
          });
  },

render: function () {
      if (Object.keys(this.state.jobs).length == 0)
      {

      }
      else {
          return (
              <div>
                  {this.state.jobs.data.map(function (ob) {
                      return <li key={ob.id}>{ob.name}</li>

                  })}

              </div>
          )
      }
      return null;
  }

});
componentDidMount:function(){
axios.获取。。。。。。。
。然后(res=>{
const jobs=res.data;
this.setState({jobs});
});
},
渲染:函数(){
if(Object.keys(this.state.jobs).length==0)
{
}
否则{
返回(
{this.state.jobs.data.map(函数(ob)){
return
  • {ob.name}
  • })} ) } 返回null; } });

    有更好的方法吗?如果不使用if语句,React始终必须在初始加载中呈现。因此,您只需要像以前一样渲染null。代码方面,也许你可以写

    return this.state.jobs.data ? <YourTemplate /> : null;
    
    返回this.state.jobs.data?:无效的
    

    哪个更干净。

    React始终必须在初始加载时渲染。因此,您只需要像以前一样渲染null。代码方面,也许你可以写

    return this.state.jobs.data ? <YourTemplate /> : null;
    
    返回this.state.jobs.data?:无效的
    

    哪个更干净。

    我会在if语句中返回null。我认为在渲染中使用if没有问题。初始呈现不会做任何事情,当您获取数据时,它将比较html并应用更改。
    如果(!this.state.jobs)返回null;返回()
    会稍微短一点,但在运行初始时间时没有问题。我会在if语句中返回null。我认为在渲染中使用if没有问题。初始呈现不会做任何事情,当您获取数据时,它将比较html并应用更改。
    如果(!this.state.jobs)返回null;返回()
    会稍微短一点,但是在初始时间运行它没有什么问题。非常适合纯组件,或者非常适合纯组件或函数