Open lambert-velir opened 5 years ago
There is a potential bug with the React example. If the Honker is unmounted from the page, honkify is not unregistered. To solve this, the example should utilize the useEffect hook:
Honker
honkify
useEffect
import React, { useEffect, useState } from "react"; import honkify from "honkify"; const Honker = () => { const [isActive, setActive] = useState(false); useEffect(() => { if (isActive) { const unregister = honkify(); return () => unregister(); } }, [isActive]); const toggleHonk = () => { setActive(isActive => !isActive); }; return ( <button onClick={toggleHonk} className="no-honk"> {isActive ? "unhonk" : "honkify!"} </button> ); }; export default Honker;
In the useEffect, unregister will be called if the isActive state is false or if the Honker is unmounted.
unregister
isActive
@jlengstorf Fixed in #4
There is a potential bug with the React example. If the
Honker
is unmounted from the page,honkify
is not unregistered. To solve this, the example should utilize theuseEffect
hook:In the
useEffect
,unregister
will be called if theisActive
state is false or if theHonker
is unmounted.