Beginner's Thread / Easy Questions (November 2018)

 import React from "react";

import axios from 'axios'; import { Spin } from 'antd';

import GenericChart from '../../../Chart/GenericChart';

import { timeParse} from "d3-time-format"; const parseDate = timeParse("%Y-%m-%d");

class ChartContainer extends React.PureComponent { displayName = ChartContainer.name;

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

// ------------------ // LifeCycles Methods // ------------------ componentDidMount() { console.log('ChartContainer - componentDidMount'); }

componentWillUnmount() { console.log('ChartContainer - componentWillUnmount'); }

componentDidUpdate(prevProps, prevState) { console.log('ChartContainer - componentDidUpdate');

const {sSelectedNodeCode, sCurrencyCode, sRootNodeCode} = this.props; this.fetchData(sRootNodeCode + sCurrencyCode, sSelectedNodeCode);
}

fetchData = (sRootNodeWithCurrency, sSelectedNodeCode) => { axios.get('api/Treenode/getNodeBarData/?sTreeCode=' + sRootNodeWithCurrency + '&sNodeCode=' + sSelectedNodeCode) .then(response => this.setState({oChartData: this.formatData(response.data), bDisplay: true})) .catch(responseError => console.log(responseError));
}

formatData = (data) => data.map(el => ({ date: parseDate(el.oDate.split("T")[0]), open:el.tOHLC[0], high:el.tOHLC[1], low:el.tOHLC[2], close:el.tOHLC[3], volume:el.lVolume }));

render() { console.log('ChartContainer - render'); const {sSelectedNodeCode, dHeight} = this.props; const {oChartData, bDisplay} = this.state;

let oChart = null;

if (bDisplay === false)
oChart = <Spin/> else oChart = <GenericChart sTitle = {sSelectedNodeCode} dHeight = {dHeight} oChartData = {oChartData}/>

return oChart; } }

export default ChartContainer;

/r/reactjs Thread Parent