React를 사용하여 API에서 JSON 객체를 구문 분석하려고하지만 하위 객체의 값을 가져 오는 방법을 알 수 없습니다. JSON의 루트에서 값을 가져 오는 것이 좋습니다. 내가 뭘 놓치고 있니?정의되지 않음의 'Available'속성을 읽을 수 없습니다.
JSON :
{
"AllocDirStats": {
"Available": 511630798848,
"Device": "",
"InodesUsedPercent": 0,
"Mountpoint": "",
"Size": 536868810752,
"Used": 25238011904,
"UsedPercent": 4.700964443929746
},
"CPU": [
{
"CPU": "",
"Idle": 100,
"System": 0,
"Total": 0,
"User": 0
}
],
"CPUTicksConsumed": 0,
"DiskStats": [
{
"Available": 511630798848,
"Device": "C:",
"InodesUsedPercent": 0,
"Mountpoint": "C:",
"Size": 536868810752,
"Used": 25238011904,
"UsedPercent": 4.700964443929746
}
],
"Memory": {
"Available": 30044225536,
"Free": 0,
"Total": 34359328768,
"Used": 4315103232
},
"Timestamp": 1494912754632734000,
"Uptime": 1747472
}
JSX : 나는 예를 들어 {client.Uptime}
-{clinet.Memory.Available}
을 변경하는 경우에는 Uncaught TypeError: Cannot read property 'Available' of undefined
에서
var App = React.createClass({
getInitialState: function() {
return {
client: []
}
},
componentDidMount: function() {
const makeRequest =() => axios.get("http://@Model.IP:4646/v1/client/stats").then(({ data }) => this.setState({ client: data }));
this.serverRequest = makeRequest();
this.poll = setInterval(() => {
this.serverRequest = makeRequest();
}, 60000) // Poll every 60 seconds
},
componentWillUnmount: function() {
this.serverRequest.abort();
clearInterval(this.poll)
},
render: function() {
const { client } = this.state;
return (
<div>
{client.Memory.Available}
</div>
)
}
});
ReactDOM.render(<App />, document.getElementById("root"));
결과, 그것은 작동하고, 나는 1747472
를 얻을.
을! 고맙습니다 :) – cvandal