I have this component
import React from 'react';
import { batch } from 'react-redux';
const ContextMenu = ({
menuData,
isOpen,
changeIsMenuOpen,
changeAssetType,
}) => {
return (
<ClickAwayListener
onClickAway={() => {
batch(() => {
changeIsMenuOpen(false);
changeAssetType(null);
});
}}
>
<ContextMenu
open={isOpen}
menuData={menuData}
/>
</ClickAwayListener>
);
};
that gets its props from following HOC
export default connect(
state => ({
isOpen: selectors.getIsMenuOpen(state),
menuData: selectors.getMenuData(state),
}),
{
changeIsMenuOpen: actions.changeIsMenuOpen,
changeAssetType: actions.changeAssetType,
},
)(ContextMenu);
I thought it might be a good idea to put onClickAway listener to useCallback, so that its instance wont be recreated in every render. Something like
const handleClickAway = useCallback(() => {
batch(() => {
changeIsMenuOpen(false);
changeAssetType(null);
});
}, []);
but i'm not sure what I must put into the dependency array. Should it be all the methods I am using? Something like
[batch, changeIsMenuOpen, changeAssetType]