【问题标题】:Nextjs conditional rendering of dataNextjs 条件渲染数据
【发布时间】:2021-03-01 06:29:24
【问题描述】:

我正在尝试从 API 呈现数据,如果加载,我将数据作为 JSON,如果获取成功,我会推送一个元素

{status: 'success'}

如果获取不是我推送这个

{status : 'failed}

当我尝试像这样在我的主函数上渲染它时

if(data.status === 'success'){
return <div> data </div>
} else if(data.status === 'failed'){
return <div> not data </div>
}

它给了我一个错误,我没有什么可返回的。

【问题讨论】:

  • 如果所有条件都失败,你必须返回一些东西。您可以在最后一个 if else 之后添加一个默认 else 块。添加这个 else{ return
    默认响应
    }

标签: javascript reactjs next.js


【解决方案1】:

在 React 组件中,您需要返回有效的 React 元素或 null。当data.status 不是'success''failed' 时,您没有处理该条件,在这种情况下您不会返回任何内容。您可以通过在最后返回null 来完成这两个条件都不满足的事件:

if(data.status === 'success'){
  return <div> data </div>
} else if(data.status === 'failed'){
  return <div> not data </div>
}
return null;

【讨论】:

    【解决方案2】:

    当你发送一个 http 请求时,可能需要几秒钟来捕捉响应 但是组件渲染会立即发生

    检查一下:

    const ComponentName = () =>{
      return(
          <div>
              {data.status === 'success' && "data"}
              {data.status === 'failed' && "not data"}
          </div>
      );
    };
    

    如果status 的模式不超过两种,你可以这样写:

    const ComponentName = () =>{
      return(
          <div>
              {data.status === 'success' ? "data" : "not data"}
          </div>
      );
    };
    

    【讨论】:

      猜你喜欢
      • 2021-06-08
      • 1970-01-01
      • 2021-06-30
      • 2022-01-01
      • 2020-06-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-12-03
      相关资源
      最近更新 更多