1
This commit is contained in:
+22
@@ -0,0 +1,22 @@
|
||||
import { useState, useCallback, useEffect } from 'react';
|
||||
/**
|
||||
* Trigger a callback on state change
|
||||
*/
|
||||
export default function useEffectState() {
|
||||
const [effectId, setEffectId] = useState({
|
||||
id: 0,
|
||||
callback: null
|
||||
});
|
||||
const update = useCallback(callback => {
|
||||
setEffectId(({
|
||||
id
|
||||
}) => ({
|
||||
id: id + 1,
|
||||
callback
|
||||
}));
|
||||
}, []);
|
||||
useEffect(() => {
|
||||
effectId.callback?.();
|
||||
}, [effectId]);
|
||||
return update;
|
||||
}
|
||||
Reference in New Issue
Block a user