Nehmen wir an, ich habe einen Zustand, der von einem anderen Zustand abhängt (z. B. wenn sich A ändert, möchte ich, dass sich B ändert).
Ist es angemessen, einen Hook zu erstellen, der A beobachtet und B innerhalb des useEffect-Hooks setzt?
Werden die Effekte so kaskadiert, dass beim Klicken auf die Schaltfläche der erste Effekt ausgelöst wird, wodurch sich b ändert und der zweite Effekt vor dem nächsten Rendern ausgelöst wird? Gibt es Leistungseinbußen bei der Strukturierung von Code wie diesem?
let MyComponent = props => {
let [a, setA] = useState(1)
let [b, setB] = useState(2)
useEffect(
() => {
if (/*some stuff is true*/) {
setB(3)
}
},
[a],
)
useEffect(
() => {
// do some stuff
},
[b],
)
return (
<button
onClick={() => {
setA(5)
}}
>
click me
</button>
)
}