Start here. This is the direct spoken answer to practice first.
Overview
React associates Hook state by call order, so control flow that changes that order corrupts the component's state mapping.
Hooks must be called at the top level in the same order on every render. A conditional call, loop, nested callback, or early return before later Hooks can shift that order and make React associate state with the wrong call. I move the condition inside the Hook or split the conditional branch into another component.