AI
const [state, change] = useState({});
const [actions, changeActions] = useState([
(state) => state
]);
const cb = useMemo(
() => (data) => actions.reduce((prev, f) => Object.assign({}, prev, f(data)), {}),
[actions],
)
const changeState = useCallback(
() => change(state => cb(state)),
[change, cb],
)