【发布时间】:2017-06-12 04:40:01
【问题描述】:
帮帮我。如何将嵌套 JSON 获取到我的数据源... React Native 为什么这么难,或者我是新手,我做不到。
{
success: true,
result:
{
types: [],
information: {
Campaigns: {
isEntity: true,
label: "Campaigns",
singular: "Campaign"
},
Vendors: {
isEntity: true,
label: "Vendors",
singular: "Vendor"
},
ProductTaxes: {
isEntity: false,
label: "ProductTaxes",
singular: "ProductTaxes"
}
}
}
}
我可以在 Java(原生 Android)中完美地做到这一点 with Iterator while hasNext
但在 React Native 中我不能这样做 :(
我需要在 Listview 中显示标签 条件是 isEntity = "true" isEntity = "false" 是否不在 Listview 中显示
import React, { Component } from 'react';
import {
Text,
View,
ScrollView,
ActivityIndicator,
ListView
} from 'react-native';
import { List, ListItem } from 'react-native-elements';
import { users } from '../config/data';
class Feed extends Component {
constructor(props){
super(props)
this.state = {
mSessionName:null,
isLoading: true,
};
}
onLearnMore = (user) => {
this.props.navigation.navigate('Details', { ...user });
};
componentWillMount() {
const {state} = this.props.navigation;
console.log(state.params.sessionName);
console.log(state.params.u_url);
console.log(state.params.u_url+"/webservice.php?operation=listtypes&sessionName="+state.params.sessionName);
return fetch(state.params.u_url+"/webservice.php?operation=listtypes&sessionName="+state.params.sessionName)
.then((response) => response.json())
.then((responseJson) => {
let ds = new ListView.DataSource({rowHasChanged: (r1, r2) => r1 !== r2});
this.setState({
isLoading: false,
dataSource: ds.cloneWithRows(responseJson.result),
}, function() {
// do something with new state
});
})
.catch((error) => {
console.error(error);
});
}
render() {
if (this.state.isLoading) {
return (
<View style={{flex: 1, paddingTop: 20}}>
<ActivityIndicator />
</View>
);
}
return (
<View style={{flex: 1, paddingTop: 20}}>
<ListView
dataSource={this.state.dataSource}
renderRow={(rowData) => <Text>{rowData.information.Campaigns}, {rowData.information.Campaigns}</Text>}
/>
</View>
);
}
}
export default Feed;
输出:>> My output img
【问题讨论】:
标签: android json reactjs react-native