Как настроить параметры реагирования для изменения запроса API на сервере? - PullRequest
0 голосов
/ 09 июня 2019

Я пытаюсь динамически визуализировать данные в реагирующее приложение из внешнего API с помощью Express.

Мой компонент реагирования имеет состояние, определяющее, какую страницу извлекать из API.

То, чего я хочу достичь, - это когда я нажимаю кнопку «Загрузить еще», компонент отправляет, чтобы выразить номер следующей страницы, отправляя обратно данные.

Это то, что я пробовал, но безуспешно:

Экспресс:

const express = require('express');
const fetch = require('node-fetch');
const path = require('path');
const app = express();

app.use(express.static(path.join(__dirname, 'build')));

app.get('/products', (req, res) => {
    const page = req.query.pages;
    let url = `https://frontend-intern-challenge-api.iurykrieger.now.sh/products?page=${page}`;
    fetch(url).then((response) => response.json()).then((contents) =>
        res.send({
            products: contents.products,
            nextPage: contents.nextPage
        })
    );
});

app.listen(process.env.PORT || 8080);

Реакция компонента:


import React, { useEffect, useState } from 'react';
import fetch from 'node-fetch';

const Products = () => {
    const [ products, setProducts ] = useState([]);
    const [ page, setPage ] = useState(1);
    const loadProduct = () => {
        setPage(page + 1);
    };
    useEffect(() => {
        fetch(`http://localhost:3000/products?pages=${page}`).then((response) => response.json()).then((contents) => {
            setProducts([ ...products, ...contents.products ]);
        });
    }, []);
    return (
        <div>
            {products.map((product) => <p>{product.name}</p>)}
            <button type="submit" onClick={loadProduct}>
                Load More
            </button>
        </div>
    );
};

export default Products;


Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...