diff --git a/README.md b/README.md index f8a513d82..d8e8fc3e8 100644 --- a/README.md +++ b/README.md @@ -36,8 +36,6 @@ For React Native applications, include `'parse/react-native'`: var Parse = require('parse/react-native'); ``` -> As of `v1.10`, Parse-SDK-JS supports React Native 0.43+. Please use `v1.9.2` for previous versions of React Native. - ## License ``` diff --git a/src/StorageController.react-native.js b/src/StorageController.react-native.js index e13de1a8c..7c2c6a1b8 100644 --- a/src/StorageController.react-native.js +++ b/src/StorageController.react-native.js @@ -10,8 +10,15 @@ */ import ParsePromise from './ParsePromise'; + // RN packager nonsense -import { AsyncStorage } from 'react-native/Libraries/react-native/react-native-implementation'; +let AsyncStorage; +try { + // for React Native 0.43+ + AsyncStorage = require('react-native/Libraries/react-native/react-native-implementation').AsyncStorage; +} catch (error) { + AsyncStorage = require('react-native/Libraries/react-native/react-native.js').AsyncStorage; +} var StorageController = { async: 1, diff --git a/src/__tests__/Storage-test.js b/src/__tests__/Storage-test.js index 76df4db97..d0eecbb5b 100644 --- a/src/__tests__/Storage-test.js +++ b/src/__tests__/Storage-test.js @@ -29,10 +29,15 @@ var mockRNStorageInterface = { }, }; +// for React Native 0.43+ jest.mock('react-native/Libraries/react-native/react-native-implementation', () => { return {AsyncStorage: mockRNStorageInterface}; }, {virtual: true}); +jest.mock('react-native/Libraries/react-native/react-native.js', () => { + return {AsyncStorage: mockRNStorageInterface}; +}, {virtual: true}); + var CoreManager = require('../CoreManager'); var ParsePromise = require('../ParsePromise').default;