I like to keep my queries in a single file, this way, if I ever want to move off of SQLite, or mock out the DB for tests, I can swap out a single file.īelow is my code that will create our db tables, initialize the users db, get users, insert users. Set up a hook to initialize the database.To do the initial setup for SQLite, run: expo install expo-sqlite Overview I will show code that will manage a list of users, using a database, hooks with state, and a context. This post assumes you have a working Expo React Native project, and that you are somewhat familiar with contexts, hooks, and state in React Native. I really like this post, which goes into great detail about using SQLite in a non-Expo setting: I utilize hooks and functional components to make my code reusable and modular. WARNING: the default location on iOS has changed in version 3.0.0 - it is now a no-sync location as mandated by Apple so the release is backward incompatible.In this post, I discuss how I have set up SQLite in my Expo app. The 'location' parameter you provide to openDatabase call indicated where you would like the file to be created. Where as on Android the location of the database file is fixed, there are three choices of where the database file can be located on iOS. Opening a database is slightly different between iOS and Android. downloaded from some remote location.įor Android, the www directory is always relative to the assets directory for the app: src/main/assets Please note that Promise based API is now supported as well with full examples in the working React Native app under test/ĮrrorCB ( err ), okCallback, errorCallback ) // if your folder is not in app bundle but in app sandbox i.e. Write application JavaScript code using the SQLite pluginĪdd JS application code to use SQLite API in your etc. Also add sqlite3.0.tbd (XCode 7) or libsqlite3.0.dylib (XCode 6 and earlier) in the same fashion using Required Libraries view (Do not just add them manually as the build paths will not be properly set)Īdd var SQLite = require('react-native-sqlite-storage') to your If rnpm link does not work for you you can try manually linking according to the instructions below: Drag the SQLite Xcode project as a dependency project into your React Native XCode projectĪdd libSQLite.a (from Workspace location) to the required Libraries and Frameworks. Version 3.2 is the first version compatible with RN 0.40. XCode 6 the only difference is that sqlite ios library name suffix is tbd instead of dylib. The library has been tested with React 16.2 (and earlier) and XCode 7,8,9 - it works fine out of the box without any need for tweaks or code changes. If there are any features that you think would benefit this library please post them. I will list them in the reference section. Please let me know your projects that use these SQLite React Native modules. All you have to do is to copy one of those files into your AwesomeProject replacing. There are sample apps provided in test directory that can be used in with the AwesomeProject generated by React Native. Windows supports callback API, identical to iOS and Android.Pre-populated SQLite database import from application bundle and sandbox.JavaScript interface via plain callbacks or Promises.iOS and Android supported via identical JavaScript API.SQLite3 Native Plugin for React Native for both Android (Classic and Native), iOS and Windowsįoundation of this library is based on Chris Brody's Cordova SQLite plugin.
0 Comments
Leave a Reply. |