Kann ich eine Aktion im Reduzierer auslösen?

Ist es möglich, eine Aktion in einem Reduzierer selbst zu versenden? Ich habe eine Fortschrittsanzeige und ein Audioelement. Das Ziel ist es, den Fortschrittsbalken zu aktualisieren, wenn die Zeit im Audioelement aktualisiert wird. Ich weiß jedoch nicht, wo die Ereignisbehandlungsroutine ontimeupdate platziert werden soll oder wie eine Aktion im Rückruf von ontimeupdate ausgelöst werden soll, um die Fortschrittsanzeige zu aktualisieren. Hier ist mein Code:

//reducer

const initialState = {
    audioElement: new AudioElement('test.mp3'),
    progress: 0.0
}

initialState.audioElement.audio.ontimeupdate = () => {
    console.log('progress', initialState.audioElement.currentTime/initialState.audioElement.duration);
    //how to dispatch 'SET_PROGRESS_VALUE' now?
};


const audio = (state=initialState, action) => {
    switch(action.type){
        case 'SET_PROGRESS_VALUE':
            return Object.assign({}, state, {progress: action.progress});
        default: return state;
    }

}

export default audio;

Antworten auf die Frage(8)

Ihre Antwort auf die Frage