javascript - 使用 Unsplash API 时图像未填充

标签 javascript api fetch-api

我正在学习如何使用获取 API,但我似乎无法弄清楚为什么在使用 Unsplash API 时只显示 1 张图像。我认为这与 map 有关,但我不确定。感谢我们的指导。

document.getElementById("search").addEventListener("click", () => {
  const searchTerm = document.getElementById("searchBox").value;
  console.log(searchTerm);

  fetch(
    `https://api.unsplash.com/search/photos?client_id=e72d3972ba3ff93da57a4c0be4f0b7323346c136b73794e2a01226216076655b&query=${searchTerm}`
  )
    .then(response => response.json())
    .then(data => {
      console.log(data);
      console.log(data.results);
      let searchResults = data.results
        .map(searchResults => {
          return (document.getElementById("app").innerHTML = `<img src="${
            searchResults.urls.small
          }">`);
        })
        .join("");
    });
});

此处的代码沙箱:https://codesandbox.io/s/yq918mok29

应该显示默认的 10 张图像,但只显示了 1 张。如何映射图像并将它们显示在页面上?

最佳答案

您将在每次映射迭代中覆盖元素的内容,因此您只能看到最后一个。使用 map 构建标记,然后将其放入文档中。

像这样:

.then(data => {
  let imagesMarkup = '';

  data.results
    .map(searchResults => {
      return (imagesMarkup += `<img src="${searchResults.urls.small}">`);
    }); // note that the join was removed here

    document.getElementById("app").innerHTML = imagesMarkup;
});

Demo

关于javascript - 使用 Unsplash API 时图像未填充,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55856029/

相关文章:

javascript - 仅打印文本框中字符串中的元音

javascript - 为phonegap应用程序预先创建html服务器端的缺点

amazon-web-services - AWS 上的 Websocket 连接总是导致 TOO MANY REQUESTS 即使是一个请求

json - 如何在 React Native 中 fetch 后才将 JSON 数据打印到控制台?

reactjs - React、Fetch-API、no-cors、不透明响应,但仍在浏览器内存中

javascript - 当有2个提交值时,如何在javascript中提交表单中的值?

javascript - 当子级具有某个类时,jQuery 将Class切换到父类

c# - javascript引号中正确的c#语法是什么

api - Paypal 内部服务器错误休息批准付款

JavaScript 获取 API 和 Python Flask header 问题