我有以下内容:
var chartOptions = {
scales: {
yAxes: [{
ticks: {
callback: (v) => {
if (v < 3600000) {
return this.callFormat(v)
}
},
stepSize: (this.props.mode == 'calls' ? 7200 : 1000)
}
}]
}
};
但是当this.props.mode
&#39;调用&#39;时,它总是从我的对象中返回false,因此总是会产生1000。
我尝试过这样做的几种不同的方式就好像是this.props
当变量应该是它时完全被忽略了。
任何人都知道为什么会这样?
if (this.props.mode == 'calls') {
var stepSize = 7200
}
var chartOptions = {
scales: {
yAxes: [{
ticks: {
callback: (v) => {
if (v < 3600000) {
return this.callFormat(v)
}
},
stepSize
}
}]
}
};
也行不通。
父
...
<div className="col-xs-6">
{!this.state.chart_loading ? <Chart data={this.state.chart_data}
mode={this.state.stat_view}/> : null}
</div>
...
chart.js之
import React, {Component, PropTypes} from 'react';
import {Line as LineChart} from 'react-chartjs-2';
import Numeral from 'numeral';
export default class Chart extends Component {
constructor(props, context) {
super(props);
}
callFormat(seconds) {
var time = Numeral(seconds).format('00:00:00');
var bits = time.split(':');
var str = '';
if (bits[0] > 0) {
str += bits[0] + 'h';
}
if (bits[1] > 0) {
if (bits[1] < 10 && bits[0] == 0) {
str = bits[1].substr(1, 1) + 'm';
} else {
str += ' ' + bits[1] + 'm';
}
}
if (bits[0] == 0 && bits[1] == 0) {
str = 0;
}
return str;
}
render() {
if (this.props.mode == 'calls') {
var stepSize = 7200
}
var chartOptions = {
scales: {
yAxes: [{
ticks: {
callback: (v) => {
if (v < 3600000) {
return this.callFormat(v)
}
},
stepSize
}
}]
}
};
return (
<LineChart data={this.props.data} options={chartOptions} width={950} height={250}/>
);
}
}