Ich habe einen Audio-Player und ich möchte die aktuelle URL immer auf die aktuell gespielte Position zeigen. Also dachte ich, ich würde einen neuen Standort mit demselben Schlüssel an den Router schicken, um dem Router mitzuteilen, dass er die Hash-Änderung ignorieren sollte.Reagieren Router: Ignorieren Hashwechsel
audioElement.addEventListener('timeupdate', (evt) => {
this.props.router.push({
...this.props.location,
hash: '#'+audioElement.currentTime
});
});
Während die Audiodatei wiedergegeben wird, wird der Seiteninhalt jedoch erneut geladen. Wie kann ich verhindern, dass der Router auf das Hashchange-Ereignis reagiert?
Ich benutze Reagieren Router 3 und Redux. Ich bin bereit, auf v4 zu aktualisieren, wenn es die Änderung vornimmt, aber es sieht zu viel Anstrengung nur aus, um es zu versuchen.
Danke @ Fegefeuer. Es gibt das Problem, dass wenn ich den Push mache, die URL zu '' '/' '' wechselt und die Seite bricht. Aber es erfrischt nicht, also denke ich, wir sind auf dem richtigen Weg. :-) – Sixtease
@Sixtease Ich habe die Antwort bearbeitet, hinzugefügt '... this.props.location' – Purgatory
Ich hätte das früher sehen sollen: das kann den Job nicht machen, weil es die URL in der Adressleiste nicht ändert, daher kann der Zweck, durch den die URL auf die aktuelle Position kopiert wird, nicht erreicht werden, es sei denn, ich liege falsch. :-) Ich habe auch versucht, eine Router-Middleware anzuwenden, aber es scheint nicht möglich, ein Rendern von dort wirklich abzubrechen. :-( – Sixtease