내 axios에 문제가 있습니다. json에서 데이터를 읽고 테이블 형식으로 itg를 표시하려고합니다. 이것은 내 코드axios.get에서 데이터를 표시 할 수 없습니다.
constructor(props){
super(props)
data: []
}
componentWillMount(){
axios.get('http://localhost:3030/Personel')
.then((response) => {
console.log(response.data);
this.setState({
datas: response.data
})
})
.catch(function (error) {
console.log(error);
});
}
render(){
console.log("lagi ngerender nih")
return(
<div>
<Table>
<TableHeader >
<TableRow>
<TableHeaderColumn>
<div>
<IconPerson /> <p> Data Personil </p>
</div>
</TableHeaderColumn>
</TableRow>
<TableRow>
<TableHeaderColumn>#</TableHeaderColumn>
<TableHeaderColumn>Nama Personil</TableHeaderColumn>
<TableHeaderColumn>Posisi</TableHeaderColumn>
<TableHeaderColumn>Jenis Kelamin</TableHeaderColumn>
<TableHeaderColumn>TB/BB</TableHeaderColumn>
<TableHeaderColumn>No.Handphone</TableHeaderColumn>
</TableRow>
</TableHeader>
<TableBody>
{this.state.datas.map((data, i) => (
<TableRow key={i}>
<TableRowColumn>{data.id}</TableRowColumn>
<TableRowColumn>{data.fullName}</TableRowColumn>
<TableRowColumn>{data.posisi}</TableRowColumn>
<TableRowColumn>{data.isMale? "Laki-laki": "Perempuan"}</TableRowColumn>
<TableRowColumn>{data.height+ "cm/" + data.weight+ "kg"}</TableRowColumn>
<TableRowColumn>{data.phoneNo}</TableRowColumn>
</TableRow>
))}
</TableBody>
</Table>
</div>
)
}
}
이며,이 오류가있어 : "형식 오류를 : 널 (null)의 특성 'datas'을 읽을 수 없습니다"그건 ()를 Axios의 전에 발사되는 렌더링 보인다. 이 문제를 어떻게 해결할 수 있습니까? 감사의
대신 componentDidMount에서 호출을 시작하거나 생성자에서 초기 값을 제공 할 수 있어야합니다. '{this.state.datas.length> 0 && this.state.datas.map '과 같이 테이블 행을 선택적으로 렌더링 할 수도 있습니다. . }} – Matty
'생성자'를 살펴 보시기 바랍니다. – brandNew
내 코드에서 생성자를 추가하여 내 질문을 편집했습니다. –