Предположу что вы делаете так:
const MyForm = () => {
const name = useSelector((state) => state.user.form.name);
const surname = useSelector((state) => state.user.form.surname);
const email = useSelector((state) => state.user.form.email);
const agree = useSelector((state) => state.user.form.agree);
...
}
В этом случае даже один селектор тригернет ререндер компонента
MyForm
Нужно переработать форму так, чтобы компонент каждого поля внутри себя использовал useSelector:
const Field = ({ name, ... }) => {
const value = useSelector(...);
...
}
const MyForm = () => {
return (
<FormContainer ...>
<Field name="name"/>
<Field name="surname"/>
<Field name="email"/>
...
</Form>
)
}
Собственно, это не специфика редакса, это то как хуки и рендеринг в реакте работают. Если ты подписался на значение, то все компненты ниже по дереву будут ререндериться на каждом апдейте. Общее правило - делать подписку на значение как можно ближе к месту использования этого значения.