Javascript 在React组件中模拟数据
我正在使用图表的数据装置(使用) 看这里Javascript 在React组件中模拟数据,javascript,reactjs,mocking,ecmascript-6,fixtures,Javascript,Reactjs,Mocking,Ecmascript 6,Fixtures,我正在使用图表的数据装置(使用) 看这里 const charts = [ {name: 'Page A', uv: 4000, pv: 2400, amt: 2400}, {name: 'Page B', uv: 3000, pv: 1398, amt: 2210}, {name: 'Page C', uv: 2000, pv: 9800, amt: 2290}, {name: 'Page D', uv: 2780, pv: 3908, amt: 2000}, {name:
const charts = [
{name: 'Page A', uv: 4000, pv: 2400, amt: 2400},
{name: 'Page B', uv: 3000, pv: 1398, amt: 2210},
{name: 'Page C', uv: 2000, pv: 9800, amt: 2290},
{name: 'Page D', uv: 2780, pv: 3908, amt: 2000},
{name: 'Page E', uv: 1890, pv: 4800, amt: 2181},
{name: 'Page F', uv: 2390, pv: 3800, amt: 2500},
{name: 'Page G', uv: 3490, pv: 4300, amt: 2100},
];
然后我有我的ChartGrid组件,我想在其中显示每个图表
导出默认类ChartsGrid扩展React.Component{
render(){
返回(
{this.props.charts.map((chart,i)=>)}
)
}
};
这是单个图表组件
导出默认类图表扩展React.Component{
渲染(){
const{charts,i}=this.props;
返回(
);
}
};
所有的工作都很好,请看带有7个代表相同数据的图表的图像
如何更改我的数据装置,以便只有一个图表元素包含此数据?因此,这里的问题是,当您使用charts.map时,您告诉react为图表数组中的每个项目呈现一个图表组件,但将整个图表数组作为图形使用的数据传递 这个钻头正在这样做
{this.props.charts.map((chart, i) => <Chart {...this.props} key={i} i={i} chart={chart} />)}
然后是沙茨格里德
export default class ChartsGrid extends React.Component{
render() {
return (
<div className="grid">
{this.props.charts.map((chart, i) => <Chart key={i} chart={chart} />)}
</div>
)
}
};
导出默认类ChartsGrid扩展React.Component{
render(){
返回(
{this.props.charts.map((chart,i)=>)}
)
}
};
单张表
export default class Chart extends React.Component {
render () {
const { chart } = this.props;
return (
<LineChart width={600} height={300} data={chart.data}
margin={{top: 5, right: 30, left: 20, bottom: 5}}>
<XAxis dataKey="name"/>
<YAxis/>
<CartesianGrid strokeDasharray="3 3"/>
<Tooltip/>
<Legend />
<Line type="monotone" dataKey="pv" stroke="#8884d8" activeDot={{r: 8}}/>
<Line type="monotone" dataKey="uv" stroke="#82ca9d" />
</LineChart>
);
}
};
导出默认类图表扩展React.Component{
渲染(){
const{chart}=this.props;
返回(
);
}
};
因此,这里的问题是,当您使用charts.map时,您告诉react为charts数组中的每个项目呈现单个图表组件,但将整个图表数组作为用于图形的数据传递
这个钻头正在这样做
{this.props.charts.map((chart, i) => <Chart {...this.props} key={i} i={i} chart={chart} />)}
然后是沙茨格里德
export default class ChartsGrid extends React.Component{
render() {
return (
<div className="grid">
{this.props.charts.map((chart, i) => <Chart key={i} chart={chart} />)}
</div>
)
}
};
导出默认类ChartsGrid扩展React.Component{
render(){
返回(
{this.props.charts.map((chart,i)=>)}
)
}
};
单张表
export default class Chart extends React.Component {
render () {
const { chart } = this.props;
return (
<LineChart width={600} height={300} data={chart.data}
margin={{top: 5, right: 30, left: 20, bottom: 5}}>
<XAxis dataKey="name"/>
<YAxis/>
<CartesianGrid strokeDasharray="3 3"/>
<Tooltip/>
<Legend />
<Line type="monotone" dataKey="pv" stroke="#8884d8" activeDot={{r: 8}}/>
<Line type="monotone" dataKey="uv" stroke="#82ca9d" />
</LineChart>
);
}
};
导出默认类图表扩展React.Component{
渲染(){
const{chart}=this.props;
返回(
);
}
};
然后,您还可以抽象设置,如宽度、高度、边距等。。。到图表数组,以便您可以使用相同的组件生成不同的图表,然后还可以抽象设置,如宽度、高度、边距等。。。添加到图表数组,以便您可以使用相同的组件生成不同的图表,
export default class Chart extends React.Component {
render () {
const { chart } = this.props;
return (
<LineChart width={600} height={300} data={chart.data}
margin={{top: 5, right: 30, left: 20, bottom: 5}}>
<XAxis dataKey="name"/>
<YAxis/>
<CartesianGrid strokeDasharray="3 3"/>
<Tooltip/>
<Legend />
<Line type="monotone" dataKey="pv" stroke="#8884d8" activeDot={{r: 8}}/>
<Line type="monotone" dataKey="uv" stroke="#82ca9d" />
</LineChart>
);
}
};