Skip to content

inProgress-team/react-native-meteor

Folders and files

NameName
Last commit message
Last commit date

Latest commit

7d00d1d · Aug 20, 2018
Aug 20, 2018
Jun 28, 2017
May 24, 2018
Jul 9, 2018
May 24, 2018
May 25, 2018
Nov 25, 2016
Nov 4, 2015
Mar 2, 2016
May 24, 2018
May 24, 2018
Oct 29, 2015
May 25, 2018
Jul 9, 2018
May 25, 2018

Repository files navigation

react-native-meteor

react-native-meteor npm version Dependency Status

Meteor-like methods for React Native.

If you have questions, you can open a new issue in the repository or ask in the our Gitter chat:
https://gitter.im/react-native-meteor/Lobby

What is it for ?

The purpose of this library is :

  • To set up and maintain a ddp connection with a ddp server, freeing the developer from having to do it on their own.
  • Be fully compatible with react-native and help react-native developers.
  • To match with Meteor documentation used with React.

Install

yarn add react-native-meteor

or

npm i --save react-native-meteor

!! See detailed installation guide

Compatibility notes

Since RN 0.26.0 you have to use ws or wss protocol to connect to your meteor server. http is not working on Android.

It is recommended to always use the latest version of react-native-meteor compatible with your RN version:

  • For RN > 0.49, use react-native-meteor@latest
  • For RN > 0.45, use react-native-meteor@1.1.x
  • For RN = 0.45, use react-native-meteor@1.0.6
  • For RN < 0.45, you can use version react-native-meteor@1.0.3 in case or problems.

Example usage

import React, { Component } from 'react';
import { View, Text } from 'react-native';
import Meteor, { withTracker, MeteorListView } from 'react-native-meteor';

Meteor.connect('ws://192.168.X.X:3000/websocket'); //do this only once

class App extends Component {
  renderRow(todo) {
    return <Text>{todo.title}</Text>;
  }
  render() {
    const { settings, todosReady } = this.props;

    return (
      <View>
        <Text>{settings.title}</Text>
        {!todosReady && <Text>Not ready</Text>}

        <MeteorListView
          collection="todos"
          selector={{ done: true }}
          options={{ sort: { createdAt: -1 } }}
          renderRow={this.renderRow}
        />
      </View>
    );
  }
}

export default withTracker(params => {
  const handle = Meteor.subscribe('todos');
  Meteor.subscribe('settings');

  return {
    todosReady: handle.ready(),
    settings: Meteor.collection('settings').findOne(),
  };
})(App);

Documentation

Author

image

Want to help ?

Pull Requests and issues reported are welcome! :)

License

react-native-meteor is MIT Licensed.