【问题标题】:How to display a message while there is no data in Axios using reactjs?如何使用reactjs在Axios中没有数据时显示消息?
【发布时间】:2021-08-28 20:12:56
【问题描述】:

我正在开发一个 reactjs 项目,并且 nodejs 我有 3 个路由器来计算用户 cmets、喜欢、提出的问题,如果他们提出问题或发表评论,我需要向她/他的个人资料显示结果在某人的帖子上,如果用户是全新的,我只想显示 (0)

我该怎么做? 这是服务器端的代码

// user likes counter
router.get("/likescounter/:id", async (req, res) => {
  const id = req.params.id;
  const likesCounter = await Likes.count({
    where: { UserId: id },
  });
  res.json(likesCounter);
  console.log("Likes counter in like", likesCounter);
});

这是客户端代码

    axios
  .get(`${targetServer}/like/likescounter/${id}`)
  .then((res) => {
    if (res.data) {
      setLikesCounts(res.data);
      console.log(res.data);
    }
  })
  .catch((err) => {
    console.log(err);
  });

最后,这是我在 UI 中呈现结果的地方

         <span className="text-gray-700">
                {likedCount}
         </span>

另外,用户界面是这样的:

有什么建议吗?

【问题讨论】:

  • 全新用户时服务器的响应是什么?
  • @RyanLe 这是来自服务器端的响应: Likes counter in like 0
  • 不是来自服务器的console.log吗?我可以知道这是什么印刷品吗? console.log(res.data);
  • 如果它是从新用户返回的,那么 UI 应该如何显示?
  • console.log(res.data);没有数据时不返回任何响应,但如果有喜欢则返回

标签: node.js reactjs axios


【解决方案1】:

根据评论部分的信息,如果数据是假的(未定义,空),我假设您想显示 (0)

所以你需要创建一个nullish coalescing operator

首先,确保您的状态初始化如下:

const [likedCount, setLikedCount] = useState(0);

然后更新你的 jsx:

<span className="text-gray-700">
      {likedCount ?? '0'}
</span>

或者Logical OR,如果你还想显示0,如果它返回一个假值

<span className="text-gray-700">
      {likedCount || '0'}
</span>

旧浏览器或无 babel 配置项目的替代方案:

<span className="text-gray-700">
      {likedCount ? likedCount : '0'}
</span>

如果likedCount === undefined 或 null 它将显示0

【讨论】:

  • 我收到此错误消息:模块解析失败:意外令牌 (441:17) 您可能需要适当的加载程序来处理此文件类型。 |列号:25 | } > }, likeCount ?? 0), /*#__PURE__*/React.createElement("span", { | className: "text-sm text-gray-500", | __self: this,
  • 哦,所以它可能不接受最新的运算符。我会更新答案
  • HUUM,是的,||运算符它没有给出错误,但它没有显示任何内容。
  • 嘿,请尝试最后一个
  • 很高兴它有帮助!
猜你喜欢
  • 2020-02-19
  • 1970-01-01
  • 1970-01-01
  • 2018-09-16
  • 2017-11-07
  • 1970-01-01
  • 2019-08-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多