【发布时间】:2019-10-09 23:40:24
【问题描述】:
我正在从父组件的 api 获取数据,并将数据作为道具发送给子组件。当我尝试安慰道具时,它返回 null。不知道为什么。但是当子组件再次渲染时,道具会显示出来
这是父组件
componentWillMount(){
fetch('http://13.234.252.37:5000/api/user_information/'+ this.props.propUser_id)
.then(response => response.json())
.then(data => {
console.log(data);
this.setState({fileUploadedData: data.Documents, dashboardPiscore: data.piscore}, () => {
console.log("set sytate", this.state.fileUploadedData);
})
})
}
return(
this.state.dashboardHome ? <DashboardHome analysisData={this.state.fileUploadedData} /> : null
)
这是子组件
class dashboardHome extends Component{
constructor(props){
super(props);
console.log("props in cons", this.props);
this.state= {
annualIncome: '0',
monthlyExpense: '0',
monthlySavings: '0',
}
}
componentDidMount(){
console.log("props in home", this.props);
if(this.props.analysisData !== null)
{
this.setState({
annualIncome: this.props.analysisData[0].Salary,
monthlyExpense: this.props.analysisData[1].average_monthly_expense,
monthlySavings: this.props.analysisData[1].average_monthly_savings
})
render(){
return(
<div>//dashboard</div>
)
}
当组件第一次渲染时,道具被控制台为空。当我再次渲染它时,道具值被设置。请帮助我在第一次渲染组件时设置道具。 道具现在为空。当我单击仪表板的其他选项卡并再次返回仪表板时,道具已按预期正确设置
【问题讨论】:
-
为什么在 componentWillMount 中使用 fetch ?正确的方法应该是componentDidMount
-
即使我在 DidMount 中使用它也无法正常工作。我刚试过。
标签: reactjs react-props