No puedo obtener mis datos para completar mi gráfico de líneas. Los datos de la llamada API regresan bien, pero cuando trato de pasar esos datos al gráfico, tienen una longitud de 0. Entonces, ¿supongo que hay algún problema con la llamada de respuesta en el momento correcto? ¿Pero he intentado tantas veces solucionar esto y nada funciona?
import React from 'react'; import NVD3Chart from 'react-nvd3'; import SamplePage from './SamplePage'; function getData(){ const alpha = require('account')({ key: 'xxxxxxxxxxxx' }); var array = []; alpha.data.intraday(`msft`).then((data) => { const polished = alpha.util.polish(data); {Object.keys(polished.data).map((key) => ( array.push(polished.data[key].open) ))} }); return array; } function getDatum() { let dataArray = getData(); let newArray = []; for (let index = 0; index < dataArray.length; index++) { const element = dataArray[index]; newArray.push({ 'x': index, 'y': parseFloat(element) }) } return [ { data: newArray, key: 'OpenPrice', color: '#A389D4' } ]; } class LineChart extends React.Component { constructor(props) { super(props); this.state = { DataisLoaded: false, data:[] }; } componentDidMount() { this.state.data = getDatum(); this.setState( { DataisLoaded: true, data: this.state.data } ) } render() { const { DataisLoaded } = this.state; if (!DataisLoaded) return <div> <h1> Please wait.... </h1> </div>; return ( <div> { React.createElement(NVD3Chart, { xAxis: { tickFormat: function(d){ return d; }, axisLabel: 'Time (ms)' }, yAxis: { axisLabel: 'Voltage (v)', tickFormat: function(d) {return parseFloat(d).toFixed(2); } }, type:'lineChart', datum: this.state.data, x: 'x', y: 'y', height: 300, renderEnd: function(){ console.log('renderEnd'); } }) } </div> ) } } export default LineChart;