Мне нужно получить доступ к продуктам, которые находятся в результате получения API. Я пробовал несколько способов, но говорит, что карта не определена или что-то еще.

Вот изображение ответа JSON:

Графический процессор нижнего уровня и ЦП среднего уровня для обработки данных

function getProducts(products) {
return request
    .get(process.env.API_URL + 'url')
    .send({
        products: products,
    })
    .set('Content-Type', 'application/json')
    .then((data) => console.log(data));}

Вот React компонент

  constructor(props) {
    super(props);
    this.state = {
      products: [],
    };
  }

  componentDidMount() {
    getProducts(this.state.products).end((err, data) => {
      if (!err) {
        this.setState({
          products: data.body[0].products,

        });
      }
    });
  }

И моя функция карты находится внутри рендера:

render() {
    return (
      <div>
        {this.state.products.map((p, index) => (

Спасибо за любой совет!

Обновить

Это ответ для console.log (this.state.products)

enter image description here

0
Nat 21 Дек 2019 в 07:36
В настоящее время у меня есть простая обработка данных, включающая группировку, слияние и параллельную операцию столбца в столбец. Не очень простая часть - это используемая массивная строка (ее подробные данные о затратах / финансах). его размер 300-400 гб.
 – 
Afia
21 Дек 2019 в 07:43
Из-за ограниченного объема оперативной памяти, в настоящее время я использую вычисления вне ядра с помощью dask. Однако это очень медленно.
 – 
Nat
21 Дек 2019 в 07:44
Используемые промежуточные фреймы данных хранятся в паркете.
 – 
Afia
21 Дек 2019 в 07:46
Ранее я читал об использовании CuDF для повышения производительности на map_partitions и groupby, однако в большинстве примеров используются графические процессоры среднего и высокого уровня (по крайней мере, 1050ti, большинство из них работают на облачной виртуальной машине на основе gv), и данные могут поместиться в ОЗУ графического процессора.
 – 
akhtarvahid
21 Дек 2019 в 07:47
Технические характеристики моей машины: E5-2620v3 (6C / 12T), 128 ГБ и K620 (только 2 ГБ выделенной виртуальной памяти).
 – 
hazardous
21 Дек 2019 в 07:49

3 ответа

У меня было такое же сообщение об ошибке, что я сделал неправильно, так это деструктурировал импорт, который не нуждался в деструктуризации.

import { fetch } from "isomorphic-unfetch";

Должны были быть

import fetch from "isomorphic-unfetch";

Не уверен, что это решит вашу проблему, но подумал, что стоит отложить это, если это поможет кому-то другому.

1
martinedwards 24 Авг 2020 в 10:48

data не возвращается из функции getProducts. Вы просто консоль, регистрирующая это. Верните data в вашу функцию обратного вызова .then.

function getProducts(products) {
    return request
        .get(process.env.API_URL + 'url')
        .send({
            products: products,
        })
        .set('Content-Type', 'application/json')
        .then((data) => {
            console.log(data);
            return data;
    });  
}

А затем измените функцию componentDidMount на

  componentDidMount() {
    getProducts(this.state.products).end((err, data) => {
      if (!err) {
        this.setState({
          products: data.body.products,

        });
      }
    });
  }
0
ioedeveloper 21 Дек 2019 в 08:14
Ty за ваш ответ, но, к сожалению, ошибка все еще существует. Кажется, что все время продукты не определены. но в файле действий, когда я console.log (data.body.products), я получил этот массив
 – 
Nat
21 Дек 2019 в 10:13
Создать простую демонстрацию на github и поделиться ссылкой?
 – 
ioedeveloper
21 Дек 2019 в 21:15
Как импортировать данные серверной части из PHP (My SQL) в приложение vuejs
 – 
Nat
22 Дек 2019 в 02:19

Ответом на эту ошибку было немного изменить функцию getProducts, удалить все .then:

    function getProducts(products) {
    return request
        .get(process.env.API_URL + 'url')
        .send({
            products: products,
        })
        .set('Content-Type', 'application/json')
    });  
}
0
Nat 25 Дек 2019 в 02:17