从子组件向父组件传递数据错误
2019-04-30
166
单击按钮时,我将数据从子组件传递到父组件,并以图形形式生成数据。但是,一旦子组件的状态更新,子组件的数据就会显示为未定义,因此没有数据传递到父组件。
这是我的父组件:
class ButtonAll extends Component{
constructor(props){
super(props);
this.state = {
childData: ''
}
}
getData = (data) => {
this.setState({
childData: data
})
}
render(){
return(
<div style={{ display: 'flex', flexDirection: 'row'}}>
<div>
<YearButton sendData={this.getData} />
</div>
</div>
)
}
export default ButtonAll;
这是我的子组件:
class YearButton extends Component{
constructor(){
super();
this.state = {
data1: [],
}
}
getData = async () => {
var res = await axios.get('http://132.148.144.133:5000/api/v1/resources/tweet/count/xxhkfh2873jiqlp');
var data1 = JSON.parse(res.data);
data1 = data1.map(el => [el[0]*1000, el[1]]);
console.log(data1, 'first data');
this.setState({
data1: data1
}, () => {
this.props.sendData(this.state.data1)
})
}
render(){
return(
<div>
<button className="year" onClick={this.getData}>year</button>
</div>
)
}
}
export default YearButton;
一旦我按下按钮,它就会在行
this.props.sendData(this.state.data1)
中显示
undefined
。
我也必须为其他组件实现类似的事情,但没有任何东西传递给父级。请帮助解决问题。
3个回答
在您的子组件中将
constructor
和
super
内的 props 作为参数传递。
Vikas Singh
2019-04-30
问题在您的构造函数中。如果使用构造函数,则必须提供props作为param to param to构造函数,并如下所示。
159837028
sathish kumar
2019-04-30
您没有在构造函数中绑定 getData() 方法。
您的构造函数函数应该看起来像
712920099
< P>您的孩子组成部分也是如此。您在子组件中的功能应在构造函数中绑定。
希望这能解决您的问题。
Aakash_Sardana
2019-04-30