javascript - React.js 获取 Giphy API

标签 javascript reactjs fetch-api

我正在构建一个搜索引擎(使用 React.js),我可以在其中使用他们的 API 查找 GIPHY gif。我是 React.js 的新手,在正确获取此代码时遇到了一些困难。

import React from 'react'; //react library
import ReactDOM from 'react-dom'; //react DOM - to manipulate elements
import './index.css';
import SearchBar from './components/Search';
import GifList from './components/SelectedList';

class Root extends React.Component { //Component that will serve as the parent for the rest of the application.

  constructor() {
    super();

    this.state = {
      gifs: []
    }
  }

  handleTermChange(term) {
    console.log(term);
    //---------------------->
    let url = 'http://api.giphy.com/v1/gifs/search?q=${term}&api_key=dc6zaTOxFJmzC';
    fetch(url).
    then(response => response.json()).then((gifs) => {
      console.log(gifs);
      console.log(gifs.length);
      this.setState({
        gifs: gifs
      });
    });//<------------------------- THIS CODE HERE
  };


  render() {
    return (
      <div>
        <SearchBar onTermChange={this.handleTermChange} />
        <GifList gifs={this.state.gifs} />
      </div>
    );
  }
}
ReactDOM.render( <Root />, document.getElementById('root'));

我在控制台中收到以下错误: 未捕获( promise 中)TypeError:_this2.setState 不是函数 在评估(index.js:64) 在

感谢任何帮助:)谢谢!

最佳答案

this 在 ES6 样式语法中不是自动绑定(bind)的。

您必须在构造函数中绑定(bind): ```` super ();

this.state = {
    gifs: []
}
this.handleTermChange = this.handleTermChange.bind(this)```

或对相关函数使用箭头函数语法: 函数 = () => {};

引用:https://facebook.github.io/react/blog/2015/01/27/react-v0.13.0-beta-1.html#autobinding

关于javascript - React.js 获取 Giphy API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48632303/

相关文章:

javascript - 使用encodeURIComponent javascript将带有反斜杠、正斜杠和空格的url参数字符串转换为%5C、%2F和%20

reactjs - 使用并发构建的 React.js 找不到构建命令 [react-scripts : command not found]

node.js - 如何在中心生成 QR 码和图像?

javascript - 使用 fetch.catch 时控制台出现错误

ajax - HTTP 请求返回状态码 0 是什么意思?

asp.net - 在 ASP.NET 中跟踪动态创建的 DOM 元素的方法

javascript - Youtube API - 从视频中获取笔记?

javascript - JS 文件不显示在本地主机默认页面之后

javascript - bundle 后从开发控制台访问 javascript 对象

c++ - C++ 类中的成功回调 Emscripten FETCH API