所以在這個應用程序中,我使用的是MediaRecorder API(https://developer.mozilla.org/en-US/docs/Web/API/MediaRecorder)。我正在嘗試使用React-Redux作爲網站的框架。以下是我的減速器的簡化版本來說明我的問題:如果redux中的狀態應該是不可變的,我將如何與有狀態的API交互?
(state = {}, action) => {
switch(action.type){
case "START_RECORDING":
return new MediaRecorder(...).start();
case "STOP_RECORDING":
state.stop(); <--- is this ok?
return {};
}
return state;
})
因此,我讀到了redux狀態應該是不可變的。但是,我必須以某種方式停止媒體記錄器,以便它停止錄製內容。這是state.stop()
好嗎?
非常感謝你。我想知道這是否真的需要成爲一個組件,因爲它可能只是一個提供媒體記錄器作爲服務的JavaScript類。 (我在角度方面有更多的經驗,所以我通過服務模式會是一個好主意嗎?不確定是否有反應) –
使其成爲React組件的最大原因是利用React的生命週期方法來控制MediaRecorder實例, React-Redux處理對商店的訂閱。你當然可以用普通的JS類做同樣的方法,但是你必須實現商店訂閱邏輯和生命週期處理。 – markerikson