Meteor React Native
Connect React Native to your Meteor app. Based on react-native-meteor, and compatible with the latest version of React Native.
API Documentation
You can view a guide to using React Native with Meteor on the Official Meteor Guide
New Package Name
Meteor React Native is now published under @meteorrn/core
. We will continue to publish updates to the meteor-react-native
repository until 2.1.0
. We recommend updating to the new package name as soon as possible.
Installation
npm install --save @meteorrn/core
- Confirm you have peer dependencty
@react-native-community/netinfo
installed - Confirm you have
@react-native-community/async-storage@>=1.8.1
installed. If you are using Expo, or otherwise cannot use @react-native-community/async-storage
, see Custom Storage Adapter below.
Custom Storage Adapter
This package uses @react-native-community/async-storage
by default. This may cause issues if you are using certain React Native versions, or if you are using Expo. To use a custom AsyncStorage implementation, pass it as an option in Meteor.connect
:
import { AsyncStorage } from 'react-native';
Meteor.connect("wss://myapp.meteor.com/websocket", { AsyncStorage });
Basic Usage
import Meteor, { Mongo, withTracker } from '@meteorrn/core';
let MyCol = new Mongo.Collection("mycol");
Meteor.connect("wss://myapp.meteor.com/websocket");
class App extends React.Component {
render() {
let {myThing} = this.props;
return (
<View>
<Text>Here is the thing: {myThing.name}</Text>
</View>
);
}
}
let AppContainer = withTracker(() => {
Meteor.subscribe("myThing");
let myThing = MyCol.findOne();
return {
myThing
};
})(App)
export default AppContainer;
Companion Packages
Since React Native apps are completely separate from your Meteor codebase, you can't meteor add
packages. For this reason, companion packages to the MeteorRN core will be published under the @meteorrn
organization.
Here are the list of official planned companion packages:
@meteorrn/ndev-mfa
: Client-side features from ndev:mfa
@meteorrn/local
: Package for storing of data locally that works seamlessly with MeteorRN by injecting data into collection
If you have an idea for a companion package, please open an issue. If you would like to publish your own companion package, we recommend a package name with the prefix mrn-
.
Compatibility
For React Native >=0.60.0 use this package
For React Native <0.60.0 use react-native-meteor.
Migrating from react-native-meteor
:
- cursoredFind is no longer an option. All .find() calls will return cursors (to match Meteor)
MeteorListView
& MeteorComplexListView
have been removedCollectionFS
has been removedcreateContainer
has been removed- Mixins (
connectMeteor
) have been removed composeWithTracker
has been removed
Changelog
The GitHub Releases Tab includes a full changelog