Flatlist рендеринг всего массива одновременно - PullRequest
0 голосов
/ 04 мая 2020

Я пытаюсь получить данные из хранилища и сохранить их в asyn c -хранилище и обработать их с помощью flatlist, но я не могу этого сделать. Вот как я пытаюсь сохранить данные пользователей

 constructor(props) {
    super(props);
    this.state = {
        data: [],
        email: "",
        name: "",
        uid: "",
        contactData: "",
        usersData: ""
    };
}

 async get_users_data() {
    const snapshot = await firebase.firestore().collection('users').get()
    this.setState({ usersData: snapshot.docs.map(doc => doc.data()) });
    console.log(JSON.stringify(this.state.usersData))
    await AsyncStorage.setItem(Date.now().toString(), JSON.stringify(this.state.usersData))
    .then(() => {
    //   this.props.navigation.goBack();
    // console.log(AsyncStorage.getAllKeys())
    // console.log(this.state.usersData)
    })
    .catch(error => {
      console.log(error);
    });
}

Вот как я пытаюсь визуализировать

fetchAllItems = async () => {
    try {
        // console.log(this.state.usersData)
        const keys = await AsyncStorage.getAllKeys()
        const items = await AsyncStorage.multiGet(keys)
        const json_value = JSON.parse(JSON.stringify(items[0][1]))
        this.setState({ contactData: json_value})
        console.log(this.state.contactData)
        // console.log(items[0][1])
        // var parsed_items = items[0][1]
        // this.setState({contactData: parsed_items})
        // console.log(JSON.parse(JSON.stringify(this.state.contactData[0][1])))
        return items
    } catch (error) {
        console.log(error, "problemo")
    }
}

Плоский список

 <FlatList
    var data={[this.state.contactData]}            
    renderItem={({ item }) => {
    console.log(item)

Это вывод я получаю после того, как я пытаюсь console.log (item)

[{"chat_uid":86766,"data":"reec9PaQW3Rsh7DJPJNzbviZS812","email":"kush@gmail.com","name":"Kush"},{"chat_uid":95397,"data":"8TbZCvXdZlVT1EC0e2PU9AxPtlp1","email":"kushagraagent47@gmail.com","name":"Kush"},{"chat_uid":86069,"data":"WoBezI7FWOdgURBnyl2YMLD03M03","email":"singh@gmail.com","name":"Keshav"}]

1 Ответ

0 голосов
/ 04 мая 2020

Попробуйте избавиться от массива в данных

<FlatList
   data={this.state.contactData}
   renderItem={({ item }) => {
...