
Company News
/Security News
Socket Selected for OpenAI's Cybersecurity Grant Program
Socket is an initial recipient of OpenAI's Cybersecurity Grant Program, which commits $10M in API credits to defenders securing open source software.
react-use-state-group
Advanced tools
A custom hook to allow you to define states of a functional component with an object
This package introduces a custom hook useStateGroup, which helps you define states in your functional components quickly.
npm i react-use-state-group
yarn add react-use-state-group
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.
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>]
FAQs
A custom hook to allow you to define states of a functional component with an object
We found that react-use-state-group demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

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.

Company News
/Security News
Socket is an initial recipient of OpenAI's Cybersecurity Grant Program, which commits $10M in API credits to defenders securing open source software.

Security News
Socket CEO Feross Aboukhadijeh joins 10 Minutes or Less, a podcast by Ali Rohde, to discuss the recent surge in open source supply chain attacks.

Research
/Security News
Campaign of 108 extensions harvests identities, steals sessions, and adds backdoors to browsers, all tied to the same C2 infrastructure.