Ссылка срабатывает каждый клик, потому что так оно и работает. В вашем случае кнопка обернута Link, поэтому Link срабатывает.
Простой способ добиться этого - избегать использования Link и, поскольку, похоже, вы используете react-router-dom
.
<button
type="submit"
onClick={this.playAudioHandler}
className={[classes.Button,
classes[this.props.btnType]].join(" ")}
>
{this.props.children}
</button>
И ваш обработчик будет перенаправлять после воспроизведения звука:
playAudioHandler = (event) => {
event.preventDefault();
const audioEl = document.getElementsByClassName("audio-element")[0];
audioEl.play();
const waitSecs = 3000 // 3 secs
setTimeout(() => {
history.push('/url');
OR
window.location.href = 'url'
}, waitSecs);
};