为什么这段代码不起作用? 我只是想从道具中设置这个类的状态,但状态总是空的。
class BillsList extends React.Component{
constructor (props: any){
super(props);
this.state = {currentList : this.props.list};
};
render(){
console.log(this.props.list); //It worked..!
console.log(this.state.currentList); //But this is empty
return(
<div className="bill_list">
{this.state.currentList.map((item,i)=>
<BillsItem key ={i} value={item} />
)}
</div>
)
}
};
&#13;
&#39;列表&#39;是像这样的数组对象 enter image description here
答案 0 :(得分:0)
您应该修改以下代码:
class BillsList extends React.Component{
constructor (props){
super(props);
this.state = {currentList : props.list};
};
render(){
console.log(this.props.list); //It worked..!
console.log(this.state.currentList); //But this is empty
return(
<div className="bill_list">
{this.state.currentList.map((item,i)=>
<BillsItem key ={i} value={item} />
)}
</div>
)
}
};
答案 1 :(得分:0)
我认为你的道具是在组件初始化后收到的。因此,在这种情况下,需要使用componentWillReceiveProps
来更新状态。
在你的情况下,它想在下面
componentWillReceiveProps(nextProps) {
if(this.props.list !== nextProps.list) {
this.setState({
currentList: nextProps.list,
});
}
}