useStateWithCallback React Hook
Custom hook to include a callback function for useState which was previously available for setState in class components. Read more about it here.
Installation
npm install use-state-with-callback
Usage
useStateWithCallback:
import React from 'react';
import useStateWithCallback from 'use-state-with-callback';
// import { useStateWithCallbackInstant } from 'use-state-with-callback';
const App = () => {
const [count, setCount] = useStateWithCallback(0, count => {
if (count > 1) {
console.log('render, then callback.');
console.log('otherwise use useStateWithCallbackInstant()');
}
});
// const [count, setCount] = useStateWithCallbackInstant(0, count => {
// if (count > 1) {
// console.log('render with instant callback.');
// }
// });
const handleClick = () => {
setCount(count + 1);
};
return (
<div>
{count}
<button type="button" onClick={handleClick}>
Increase
</button>
</div>
);
};
useStateWithCallbackLazy:
import React from 'react';
import { useStateWithCallbackLazy } from 'use-state-with-callback';
const App = () => {
const [count, setCount] = useStateWithCallbackLazy(0);
const handleClick = () => {
setCount(count + 1, (currentCount) => {
if (currentCount > 1) {
console.log('Threshold of over 1 reached.');
} else {
console.log('No threshold reached.');
}
});
};
return (
<div>
<p>{count}</p>
<button type="button" onClick={handleClick}>
Increase
</button>
</div>
);
};
export default App;
Contribute
git clone git@github.com:the-road-to-learn-react/use-state-with-callback.git
cd use-state-with-callback
npm install
npm run test
More