То есть если player==opponent =>dispatch(...действие), может в useeffect нужно?
скорее всего да, можно еще с задержкой небольшой сделать, но useEffect должен отрабатывать только после вашего действия, можно к примеру сделать counter в которое будет прибавляться +1 действие ваше и от него дать зависимость в useEffect