【发布时间】:2019-10-19 22:26:21
【问题描述】:
我有一个从 firebase 获取数据的功能, 我想在获取后将数据设置为状态, 所以我只是声明一个数组并将所有数据推送给他们,然后我用我的状态设置这个数组
但是当我记录这些状态或渲染它时,我遇到了 RN 0.61.2 的一些问题,它在 RN 0.58.0 中完美运行我不知道为什么/如何!!!
当我记录状态时,我只看到高估的数据“我在 DB 中只有 4 个项目”,但记录器向我打印了十多个, 当我只是渲染这些数据“状态”时,他们会告诉我
NSNumber 类型的 JSON 值“5”无法转换为 Nsstring
那我该如何避免呢?
这是我的代码片段
this.state = {
RecommendedProviders: [],
}
componentDidMount() {
this._recommendedProvider();
}
_recommendedProvider = () => {
let Recommended = [];
firebase
.database()
.ref('recommendationProviders')
.once('value')
.then(snapshot => {
snapshot.forEach(childSnapshot => {
Recommended.push({
gKey: childSnapshot.key,
id: childSnapshot.val().id,
username: childSnapshot.val().username,
service: childSnapshot.val().service,
aboutMe: childSnapshot.val().aboutMe,
coordinates: {
longitude: childSnapshot.val().coordinates.longitude,
latitude: childSnapshot.val().coordinates.latitude,
},
city: childSnapshot.val().city,
mobileNumber: childSnapshot.val().mobileNumber,
token: childSnapshot.val().token._55,
});
});
console.log('Recommended', Recommended); //when i log this i can just see array of 4 item
this.setState({RecommendedProviders: Recommended});
});
// .then(() => this.setState({RecommendedProviders: Recommended}));
};
用户界面
<FlatList
horizontal
data={this.state.RecommendedProviders}
renderItem={({item}) => {
console.log('@item/', item); /when i log this i can just see more than 4 item maybe 20 :D
}}
keyExtractor={(item, index) => index.toString()}
/>
【问题讨论】:
标签: javascript reactjs firebase-realtime-database