this.props.playedGames извлекает данные из моего состояния Redux и упорядочивает самые последние даты до первой записи (в порядке убывания).Мне нужны данные для моего кумулятивного линейного графика (chart.js), чтобы они были в обратном порядке с первой записи до самой последней даты.Как бы я сделал это, не используя обратный метод, который постоянно меняет при каждом обновлении.Я бы не стал повторно вызывать API, поскольку у меня есть данные, которые мне нужны.
Я попытался создать состояние для обновления страницы, чтобы оно не обновлялось.Я пробовал несколько разных способов этого.Все не удалось.
мой код:
import { connect } from 'react-redux';
import {withRouter} from 'react-router';
import { Link } from 'react-router-dom';
import PropTypes from 'prop-types';
import {Line} from 'react-chartjs-2';
class ChartPage extends Component {
profitForChart = (props) => {
let total = 0
return this.props.playedGames.reverse().map( (game, index) => ({
x: index,
y: total += parseFloat(game.profit)
}))
}
render() {
if(!this.props.playedGames) return <h1>Loading...</h1>
const { classes } = this.props;
const data = {
datasets: [{
data: this.profitForChart(),
label: 'PROFIT'
}],
labels: this.props.playedGames.map( game => (new Date(game.start_date_time)).toLocaleDateString()),
}
return(
<div className={classes.root}
<Line data={data} />
</div>
)
}
}
const mapStateToProps = ( state ) => {
return {
playedGames: state.userPlayedGames.playedGames,
isLoading: state.isLoading,
}
}
const mapDispatchToProps = {
}
ChartPage.propTypes = {
classes: PropTypes.object.isRequired,
};
export default compose(
withStyles(styles, {
name: 'ChartPage',
}),
connect(mapStateToProps, mapDispatchToProps))(withRouter(ChartPage));
Ожидаемый результат: 1/2018, 2/2018, 3/2018 с накоплением линейного графика с течением времени.
Фактический результат: (верно при начальной загрузке и при каждом другом обновлении), но следующий неверен: график накапливается обратно, а даты идут в обратном направлении: 3/2018, 2/2018, 1/2018.-----