我有一个名为" Component_A"的父组件。我有一个子组件" Component_B"。我试图从父组件中的服务器获取数据,并将其作为道具传递给子组件。但是在我使用" componentDidMount"进行ajax调用之前,我的道具中没有值。在父母" Component_A"中的功能。所以我想在子组件中设置defaultProps" Component_B"使用" getDefaultProps"。但看起来它不起作用!
var Component_A = React.createClass({
componentDidMount : function(){
//Get data from server and set it in state variable called "data"
},
render : function(){
return (
<ComponentB sampleData={this.state.data} />
)
}
})
var ComponentB = React.createClass({
getDefaultProps : function (){
return {
data : {
vehicle : {
make :{
name : "Ford"
},
model : {
name : "Focus"
}
}
}
}
},
render : function(){
return (
<div> {this.props.data.vehicle.make.name} </div>
)
}
})
&#13;
当我加载页面时,我得到&#34; Uncaught TypeError:无法读取属性&#39; make&#39;未定义&#34;
答案 0 :(得分:0)
render : function(){
<ComponentB sampleData={this.state.data} />
}
一切都好,也许你忘了这里的return
答案 1 :(得分:0)
将A的渲染更改为此 -
render : function(){
if(this.state.data){
return ( <ComponentB data={this.state.data} /> );
}
else{
return ( <ComponentB />);
}
}