Axios响应数据替换

lil*_*evo 2 twitch vue.js axios twitch-api

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

https://static-cdn.jtvnw.net/previews-ttv/live_user_shroud-{width}x{height}.jpg
Run Code Online (Sandbox Code Playgroud)

而我正试图这样做。

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);
     });
},
Run Code Online (Sandbox Code Playgroud)

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

Nik*_*aut 6

您应该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);
Run Code Online (Sandbox Code Playgroud)

在您的代码中更改此

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;
Run Code Online (Sandbox Code Playgroud)

当您发表评论时,您也可以不使用变量

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