React Native Sqlite获取Listview中的所有数据 [英] React Native Sqlite fetch all data in Listview

查看:126
本文介绍了React Native Sqlite获取Listview中的所有数据的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在使用此库: https://github.com/andpor/react我的反应原生项目的-native-sqlite-storage

我从数据库中检索单行,如下所示:

I retrieve single row from database like this:

db.transaction((tx) => {
        tx.executeSql('SELECT * FROM user where id = 1', [], (tx, results) => {
            console.log("Query completed");

            var len = results.rows.length;
           if (len > 0) {
                let row = results.rows.item(0);
                this.setState({userName: row.name});
            }
        });
    });


return (
        <View>
            <Text>{this.state.userName}</Text>
        </View>
    )

但是现在我想从数据库中获取所有数据,告诉我有什么不对我在下面的代码中做:

But now i want to fetch all data from database, tell me what wrong i am doing in below code:

 db.transaction((tx) => {
        tx.executeSql('SELECT * FROM user', [], (tx, results) => {
            console.log("Query completed");

            var len = results.rows.length;
           for (let i = 0; i < len; i++) {
                let row = results.rows.item(i);
                this.setState({record: row.name});
            }
        });
    });




return (
            <View>
                <FlatList data={this.state.record}
                          keyExtractor={(x,i) => 1}
                          renderItem={ ({item}) =>
                              <ListItem><Text>{item.name}</Text></ListItem>
                          }
                />
            </View>
        )

任何人都可以指导我如何在listview中显示数据库数据。

can anyone guide me how can i show database data in listview.

推荐答案

你的州FlatList数据的值应该是一个数组,并且每次执行时都将其设置为单个字符串。

Your state value for FlatList data should be an array and you are setting it to a single string every time you itterate through.

尝试按以下方式更改

this.setState((prevState) => ({ record : prevState.record.push(row.name)}))

PS:您需要将 record 的初始状态值设置为空数组左右。

PS: you need to set your initial state value for record as an empty array or so.

这篇关于React Native Sqlite获取Listview中的所有数据的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆