【问题标题】:Axios Response Data ReplaceAxios 响应数据替换
【发布时间】:2019-08-06 10:58:45
【问题描述】:

我正在尝试使用 Twitch API 来学习 Axios 和 Vue。我正在从该 API 获取数据,并且有 thumbnail_url 用于频道的缩略图,但我必须更改该数据的 widthheight 因为它是这样来的;

https://static-cdn.jtvnw.net/previews-ttv/live_user_shroud-{width}x{height}.jpg

我正试图这样做;

beforeMount(){
  helix.get('streams?language=en').then((response) => {
    for(var i=0; i < response.data.data.length; i++){
      response.data.data[i].thumbnail_url.replace("width", "40")
    }
    console.log(response.data.data)
  this.results = response.data.data
    })
    .catch(function (error) {
     console.log(error);
     });
},

实际上,我不明白什么是行不通的。我知道有一点我错过了。如果有人可以帮助我,那就太好了。 如果这样做不是正确的方法,那么正确的方法是什么? 非常感谢。

【问题讨论】:

  • 您认为哪个部分不起作用?您是否没有在响应中获取数据,或者您无法替换 width
  • 在我检查控制台日志或输出的代码之后,它看起来仍然一样。宽度字符串没有改变。

标签: vue.js axios twitch twitch-api


【解决方案1】:

你应该改用replace("{width}", "40");

var url = 'https://static-cdn.jtvnw.net/previews-ttv/live_user_shroud-{width}x{height}.jpg';
url = url.replace("{width}", "40");
url = url.replace("{height}", "60");
console.log(url);

在你的代码中改变这个

var thumbnail_url = response.data.data[i].thumbnail_url;
thumbnail_url = thumbnail_url.replace("{width}", "40");
thumbnail_url = thumbnail_url.replace("{height}", "60");
response.data.data[i].thumbnail_url = thumbnail_url;

正如您评论的那样,您也可以在没有变量的情况下做到这一点

response.data.data[i].thumbnail_url = response.data.data[i].thumbnail_url.replace("{width}", "40").replace("{height}", "60");

【讨论】:

  • 我明白了,但那个 url 并不总是相同的。我正在为太多频道获取数据,每个频道都有自己的缩略图网址。
  • 好的,然后分享您问题中的所有信息,然后我会尝试相应地更改我的答案。 @lilrevo 分享缩略图的其他 ulr 格式(如果有)?
  • prntscr.com/my8rol 这是我正在获取的结果的控制台日志。当我获取数据时,我必须更改所有这些的宽度和高度。但我找不到解决方案
  • @lilrevo :根据你的 vuejs 代码,我已经添加了代码。
  • 成功了。非常感谢。当我想做一些改变时,我应该一直使用变量吗?
猜你喜欢
  • 2021-07-27
  • 2020-10-30
  • 2022-11-25
  • 2018-03-17
  • 2021-01-31
  • 2021-05-06
  • 2023-01-12
  • 2022-11-29
  • 2018-03-22
相关资源
最近更新 更多