Polyfill and ponyfill for the React Hooks API.
Works on React Native!
⚠️The code on master branch is still WIP.
$ npm i react-with-hooks --save
You can use react-with-hooks
as a polyfill; in this case, when you later transition to native React Hooks you will only need to remove the import 'react-with-hooks/polyfill'
statement:
import 'react-with-hooks/polyfill'; // import the polyfill in the entry of your application
import React, { useState, useEffect } from 'react';
const Counter = () => {
const [ count, setCount ] = useState(0);
useEffect(() => {
document.title = "count is " + count;
})
return (
<div>
{count}
<button onClick={() => setCount(count + 1)}>+</button>
<button onClick={() => setCount(count - 1)}>-</button>
</div>
);
};
Alternatively, you can use this library as a ponyfill with the withHooks
helper. In this case, you will have to refactor your code later when you transition to use native React Hooks.
import React from 'react';
import withHooks, { useState, useEffect } from 'react-with-hooks';
const Counter = withHooks(() => {
const [ count, setCount ] = useState(0);
useEffect(() => {
document.title = "count is " + count;
})
return (
<div>
{count}
<button onClick={() => setCount(count + 1)}>+</button>
<button onClick={() => setCount(count - 1)}>-</button>
</div>
);
});