私は単純な天気予報アプリを作っています。同じ高さと幅のプロパティでもSparklinesの図表が異なるサイズで表示されています。スパークラインのグラフはさまざまなサイズになりますか?
WeatherListコンテナ:
import React, { Component } from 'react';
import { connect } from 'react-redux';
import Chart from '../components/chart';
class WeatherList extends Component {
renderWeather(cityData) {
const name = cityData.city.name;
const temps = cityData.list.map(weather => weather.main.temp);
const pressures = cityData.list.map(weather => weather.main.pressure);
const humidities = cityData.list.map(weather => weather.main.humidity);
return(
<tr key={name}>
<td>{name}</td>
<td><Chart data={temps} color="orange" units="K" /></td>
<td><Chart data={humidities} color="green" units="%" /></td>
<td><Chart data={pressures} color="black" units="hPa" /></td>
</tr>
);
}
render(){
return(
<table className="table table-hover">
<thead>
<tr>
<th>City</th>
<th>Temperature (K)</th>
<th>Humidity (%)</th>
<th>Pressure (hPa)</th>
</tr>
</thead>
<tbody>
{this.props.weather.map(this.renderWeather)}
</tbody>
</table>
);
}
}
function mapStateToProps({ weather }) {
return { weather };
}
// Above function can also be written...
/* function mapStateToProps({state}){
return {weather: state.weather};
}*/
export default connect(mapStateToProps)(WeatherList);
実際のチャートコンポーネント:
import _ from 'lodash';
import React from 'react';
import { Sparklines, SparklinesLine, SparklinesReferenceLine } from 'react-sparklines';
// lodash will grab the average
function average(data) {
return _.round(_.sum(data)/(data.length));
}
export default (props) => {
return (
<div>
<Sparklines height={120} width={180} data={props.data}>
<SparklinesLine color={props.color} />
<SparklinesReferenceLine type="avg" />
</Sparklines>
<div>{average(props.data)} {props.units}</div>
</div>
);
};
私はそれがどこかWeatherList内JSXにあるかもしれないと思っていますが、私は今のところありません成功してここに座ってきました。