Reputation:
I am trying to set an updated size to an element using this statement.
const [size, setSize] = useState({});
I want to state my initial size to:
transform: scale(1, 1) translate3d(0, 0, 0);
Once the element is clicked, I want to enlarge my element to this:
transform: scale(2, 2) translate3d(0, 0, 0);
This is how I will be triggering the element to update to the new setSize.
const onClickHandler = (event) => {
setSize= transform: scale(2, 2) translate3d(0, 0, 0);
}
Upvotes: 1
Views: 369
Reputation: 2937
You can do one of the following:
Option 1
const [style, setStyle] = useState({});
const onClickHandler = () => setStyle({
transform: "scale(2, 2) translate3d(0, 0, 0)"
});
return (
<div style={style}>
{/* some components */}
</div>
);
Option 2
const [scale, setScale] = useState(1);
const style = useMemo(() => ({ // to prevent unnecessary re-rendering
transform: `scale(${scale}, ${scale}) translate3d(0, 0, 0)`
}), [scale]);
const onClickHandler = () => setScale(2);
return (
<div style={style}>
{/* some components */}
</div>
);
Upvotes: 2