【发布时间】:2018-06-18 02:53:43
【问题描述】:
我已经做了一个父组件和子组件(Piechart.js)。我像这样将 props 从父组件传递给 Piechart 组件 ->
<Pie batdata={this.props.BattingRecord}/>
以上代码在父组件中。现在我想从我的 Piechart 组件(它是子组件)中的 props 中提取数据。
当我在 Piechart 组件构造函数中尝试 console.log(this.props) 时,它会在控制台中显示 JSON 数据。请看下面的截图:
现在我想在dismissal 中获取how 参数,请参见上面的屏幕截图。我认为我没有正确访问道具。所以我在 Piechart 组件中尝试如下:
饼图.jsx:
import React, { Component } from 'react';
const wickets = this.props.batdata.reduce( (a,{dismissal}) =>{ <--Getting error at this line
if(!a[dismissal.how]){
a[dismissal.how]=1;
}else{
a[dismissal.how]=a[dismissal.how] + 1;
}
return a;
}, {});
console.log(wickets);
const dismissals = Object.values(wickets);
const labels = Object.keys(wickets);
//console.log(dismissals);
//console.log(labels);
class Pie extends Component {
constructor(props){
super(props);
console.log(this.props)
}
componentDidMount(){
const piechart = new Chartist.Pie('.ct-pie-chart', data, options, responsiveOptions);
}
render(){
return(
<div>
<div className="col-md-3 col-xs-6 ct-pie-chart">
{this.piechart}
</div>
</div>
)}
}
export default Pie ;
对于上述代码,我收到类型错误:TypeError: Cannot read property 'batdata' of undefined
【问题讨论】:
-
请提供minimal reproducible example。这意味着您应该显示
class以及它的道具是如何设置的。 -
@Code-Apprentice 现在可以看到更新的代码了。
-
你将如何处理
wickets的值? -
@Code-Apprentice 我正在尝试计算
how参数。how:LBW,how:CGT,how:OUT。所以我试图计算how的不同值。 -
是的,
this.props可用于您的Pie类或extends Component的任何类中的任何函数。
标签: javascript reactjs