New Research: Supply Chain Attack on Axios Pulls Malicious Dependency from npm.Details
Socket
Book a DemoSign in
Socket

react-use-state-group

Package Overview
Dependencies
Maintainers
1
Versions
3
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

react-use-state-group

A custom hook to allow you to define states of a functional component with an object

latest
npmnpm
Version
1.0.2
Version published
Maintainers
1
Created
Source

react-use-state-group

Introduction

This package introduces a custom hook useStateGroup, which helps you define states in your functional components quickly.

Install

npm i react-use-state-group
yarn add react-use-state-group

Usage

The following code using useStateGroup:

import React from 'react';
import {useStateGroup} from "react-use-state-group";

function UserStatus() {
    const [userState, userStateSetters] = useStateGroup({
        name: "Winnie",
        age: 67,
        position: "Driver",
    }); 
    
    // Define all your needed states with an object
    // Use `userStateSetters.<attribute-name>(<new-value>)`

    return (
        <form>
            <input type="text" value={userState.age} onChange={e => userStateSetters.age(e.target.value)}/>
            <input type="text" value={userState.name} onChange={e => userStateSetters.name(e.target.value)}/>
            <input type="text" value={userState.position} onChange={e => userStateSetters.position(e.target.value)}/>
        </form>
    )
}

export default UserStatus;

does the same effect as

import React from 'react';
import {useState} from 'react';


function UserStatus() {

    const [name, setName] = useState("Winnie");
    const [age, setAge] = useState(67);
    const [position, setPosition] = useState("Driver");

    return (
        <form>
            <input type="text" value={age} onChange={e => setAge(e.target.value)}/>
            <input type="text" value={name} onChange={e => setName(e.target.value)}/>
            <input type="text" value={position} onChange={e => setPosition(e.target.value)}/>
        </form>
    )
}

export default UserStatus;

However, with original useState, we need to define pairs of [attribute, setAttribute], which is considered to be boilerplate.

Now with useStateGroup, we replace each setAttribute with a function defined automatically for each attribute setters.attribute. This does not only saves many efforts defining those useState pairs, but also provides syntactic hints if user wants refactor the name of some attributes.

Works with TypeScript

This package is written in typescript, so if you stick to clear typing, this package will work with you well.

function useStateGroup<T extends {}>(group: T): [T, Setters<T>]

Keywords

react

FAQs

Package last updated on 10 Jun 2020

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts