Think of it in terms of where should this piece of state be managed.
Say you have a checkbox, why would the whole world need to know that the checkbox is i.e. checked? That may be considered a piece of state that is only needed by the checkbox component, so hold its state in the component with a setChecked. Unless other components use that checked value... in which case you may want to move the checked status up to a point where that value can waterfall down to only the components that needed the checked value.
You can save the value of checked to redux, but do you need to? We find (in our apps) that redux is better than react context as it re-renders less, we also get state for checkboxes / etc from get requests at init of our app so we save to redux at build time, then populate checkboxes when they are shown on the page... so redux is the right place (for us) to hold state (not the component as i previously mentioned). So it depends on use case.
The general rule is to hold state no higher in the tree than it is needed.