Когда ваше условие совпадает, кнопки отображаются. Но обработчик событий onClick, прикрепленный к ним, выполняется во время самого процесса рендеринга. И за счет этого идет 2 рассылки. Вместо этого вам следует сделать так, чтобы функция вызывалась только после нажатия кнопки.
Этого можно добиться, изменив затем onClick
для кнопок на что-то вроде
<div>
<button onClick={() => actionLogin(login,password)} className="btn btn-primary login-btn">Login</button>
<button onClick={() => actionReg(login,password)} className="btn btn-primary login-btn">Register</button>
</div>
Вы правильно сделали событие onChange
для входов. Тогда, я надеюсь, вы понимаете, почему этот тип синтаксиса необходим и для кнопок, и для тех мест, где вы передаете функции.