我正在尝试获取json数据数组,然后将单个json对象从该数组传递给另一个子组件以呈现UI。 我已经从Snack.io中获取了在线示例,然后添加了它,然后调用我的Web服务来获取类似的json数组。但是它不起作用。 我使用的小吃:https://snack.expo.io/embedded/@aboutreact/expandable-listview?preview=true&platform=ios&iframeId=qn4os3zz2g&theme=dark
我正在尝试以下代码从ws获取json数据:
componentDidMount = () => {
fetch('http://192.168.0.105:8080/pos3', {
method: 'GET'
})
.then((response) => response.json())
.then((responseJson) => {
//console.log("123 printing response json");
//console.log(responseJson);
console.log("printing result json - 1");
console.log(responseJson.dataSource[0].datasets[0]);
console.log("labels:::" + responseJson.labels);
console.log("-----------FILTERED ARRAY----------");
console.log("=>");
//const c1 = responseJson.dataSource.datasets.filter(i1 => i1.name==="AHTCMSP01").filter(i2 => i2.type==="baseline").filter(i3 => i3.process==="dataSync");
//console.log(c1[0]);
console.log("=><=");
const dSource = responseJson.dataSource;
CONTENT = responseJson.dataSource;
const specificData =
dSource.map((value, placeindex) => {
const dValue = value;
console.log("---------> FOR EACH DATASOURCE:" + dValue.catagory);
console.log("---------> data[0]:" + dValue.datasets[0].data);
console.log("---------> data[1]:" + dValue.datasets[1].data);
});
const dataSourceNames = responseJson.dataSourceName;
dataSourceNames.map((value, i) => {
console.log("==========> FOR EACH dataSpurceName:" + value);
//console.log("==========> related datasets are:" + responseJson.dataSource.filter(ds => ds.catagory===value)[0].datasets[0].data);
console.log("==========> related datasets are:" + responseJson.dataSource.filter(ds => ds.catagory === value));
});
this.setState({
dataSource: responseJson.dataSource,
dataSourceNames: responseJson.dataSourceName,
labels: responseJson.labels,
isLoading: false
})
})
.catch((error) => {
console.error(error);
});
}
但是我无法在状态中设置响应并使用props在子组件中传递状态值:
<ExpandableItemComponent
key={item.category_name}
onClickFunction={this.updateLayout.bind(this, key)}
item={item} data={this.state.dataSource}
/>
如何实现这一目标... 我收到未定义的错误。
请帮助! ... 谢谢进阶