Как отобразить конкретные результаты, используя Giphy API?

Итак, я использую React прямо сейчас, чтобы создать простое приложение для каждого задания. Теперь я знаю, что вы можете визуализировать несколько картинок GIF на основе результатов поиска, введенных пользователем, но как отображать только определенные результаты, которые я выбрал?

Например, если бы я просто хотел представить страницу с изображениями реакции или страницу с забавными изображениями кошки без ввода данных пользователем.

Кроме того, что если я захочу разбить эти результаты на страницы, возможно, на 10 гифок на страницу?

Я не смог найти четкого ответа в Интернете, поэтому любая помощь, которую вы, ребята, могли бы оказать, будет принята с благодарностью. Заранее спасибо.

1 ответ

Вы хотите установить запрос, который не контролируется пользователем, получить эти результаты и отобразить их. Разбивка на страницы довольно проста, используйте limit а также offset параметры API ( Документы).

Очень простой пример:

class Category extends React.Component {
  constructor() {
    super();
    this.state = { data: [], paginate: 0 };
    this.fetchNextPage = this.fetchNextPage.bind(this);
  }

  componentDidMount() {
    this.fetchData();
  }

  fetchData() {
    fetch(`https://api.giphy.com/v1/gifs/search?q=${this.props.query}&limit=${this.props.limit}&offset=${this.state.paginate}&api_key=dc6zaTOxFJmzC`)
      .then(res => res.json())
      .then(data => this.setState({ data: data.data }));
  }

  fetchNextPage() {
    this.setState({
      paginate: this.state.paginate + this.props.limit
    }, () => this.fetchData());
  }

  render() {
    return (
      <div>
        <button onClick={this.fetchNextPage}>Next Page</button><br />
        {this.state.data.map(gif => (
            <img
              key={gif.id}
              src={gif.images.fixed_width_small.url}
            />
          ))}
      </div>
    );
  }
}

ReactDOM.render(
  <Category query="cats" limit={10} />,
  document.getElementById("View")
);
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react-dom.min.js"></script>
<div id="View"></div>

Другие вопросы по тегам