

React NativeとExpoを使用してAndroidアプリを開発しています。

expo-
sqliteのexecuteSqlを使い、データベースのレコードを取得したものを配列に格納して返す関数を作ったのですが、返す値が空の配列になってしまいます。

（データベースには正常にレコードが入っていることをconsole.logを使用して確認済みです。）

作成した関数がデータベースのレコードを取得しそのレコードを値として返すにはどうすればいいでしょうか。

ご回答よろしくお願いいたします。

以下自分が書いたコードです。

データベースのレコードを取得する関数

[code]

    import * as SQLite from "expo-sqlite";
    
    const DBNAME = "db.db";
    
    export const GetAllDB = () => {
        const db = SQLite.openDatabase(DBNAME);
        let data = [];
    
        db.transaction(
            tx => {
                tx.executeSql(
                    "select name from table",
                    [],
                    (tx, results) => {
                        results.rows._array.forEach(item => {
                            data.push(item);
                        });
                    },
                    () => {
                        console.log("get all db failed");
                    }
                )
            },
            () => {
                console.log("Error GetAllDB");
            },
            () => {
                console.log("Success GetAllDB");
            }
        )
        return data;
    }
    
[/code]

呼び出し先

[code]

    const data = GetAllDB();
    data.forEach((item) => {
        addFlatList(item);
    });
    
[/code]


CC BY-SA 4.0
2023-01-03T03:22:40.540
93159
2023-01-03T07:35:37.657
2023-01-03T07:35:37.657
3060
56343
question
javascript android react-native
expo-sqliteを使用して取得したデータベースの内容を配列に格納したい