Giter VIP home page Giter VIP logo

react-native-hooksdb's Introduction

React Native HooksDB

React Native database using React Hooks

Getting Started

You've to install some required packages:

npm install @react-native-community/async-storage react-native-get-random-values

See more about Async Storage here

After that, install our package:

npm install react-native-hooksdb

Reading elements

import React from 'react';
import {View, Text} from 'react-native';
import {useCollection} from 'react-native-hooksdb';

export default function Users() {
  const {users} = useCollection('users');

  return (
    <View>
      {users.map((user) => (
        <Text key={user.id}>{user.name}</Text>
      ))}
    </View>
  );
}

Inserting element

import React, {useCallback, useState} from 'react';
import {View, TextInput, Button} from 'react-native';
import {useCollection} from 'react-native-hooksdb';

export default function InsertUser() {
  const {insertOne} = useCollection('users');

  const [name, setName] = useState('');

  const insertUser = useCallback(
    async function () {
      await insertOne({name});

      setName('');
    },
    [insertOne, name],
  );

  return (
    <View>
      <TextInput onChangeText={setName} value={name} />

      <Button onPress={insertUser} title="Insert user" />
    </View>
  );
}

Updating element by id

import React, {useCallback, useState} from 'react';
import {View, TextInput, Button} from 'react-native';
import {useCollection} from 'react-native-hooksdb';

export default function UpdateUser() {
  const {updateById} = useCollection('users');

  const [id, setId] = useState('');
  const [name, setName] = useState('');

  const updateUser = useCallback(
    async function () {
      await updateById(id, {name});

      setId('');
      setName('');
    },
    [id, name, updateById],
  );

  return (
    <View>
      <TextInput onChangeText={setId} value={id} />
      <TextInput onChangeText={setName} value={name} />

      <Button onPress={updateUser} title="Update user" />
    </View>
  );
}

Removing element by id

import React, {useCallback, useState} from 'react';
import {View, TextInput, Button} from 'react-native';
import {useCollection} from 'react-native-hooksdb';

export default function RemoveUser() {
  const {removeById} = useCollection('users');

  const [id, setId] = useState('');

  const removeUser = useCallback(
    async function () {
      await removeById(id);

      setId('');
    },
    [id, removeById],
  );

  return (
    <View>
      <TextInput onChangeText={setId} value={id} />

      <Button onPress={removeUser} title="Remove user" />
    </View>
  );
}

react-native-hooksdb's People

Contributors

gabrielrufino avatar

Stargazers

Fernando Mumbach avatar

Watchers

James Cloos avatar Fernando Mumbach avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.