Вы можете использовать один useState со значением объекта для одновременного обновления стилей:
import React, { useEffect, useState } from 'react';
export default function (props) {
const [style, setStyle] = useState({ color: 0, size: 0, weight: 0 });
const onClickRandomButton = () => {
setStyle({
color: Math.random() * 10,
size: Math.random() * 10,
weight: Math.random() * 10,
});
};
return (
<div>
<button onClick={onClickRandomButton}>random</button>
</div>
);
}
И если в любом методе вы хотите обновить только одно свойство, например: color, вы можете сделать что-то вроде это:
...
const handleEditColor = color => {
setStyle({
...style,
color
});
};
...