我有一个React应用,可以录制音频。 当用户按下按钮时,该组件应使它的父组件运行stopRecording()例程,从而保存文件和一些有关条件的json数据并触发用户流。
我一直在研究Redux,它对于JSON数据来说似乎不错,但是我对音频文件不太确定。 但是Redux是否达到了pub / sub的目的,即通知组件他们应该做的事情。
答案 0 :(得分:1)
但是Redux是否实现了pub / sub通知组件的目的 他们应该做的事。
是的。每当商店更改时,所有“连接”的组件都将接收新的商店更新,因此,componentDidUpdate将被调用。例如,假设您要触发一个动作并侦听该触发,然后您将执行以下操作:
订户
class MyListenerComponent extends Component {
...
componentDidUpdate(prevProps) {
if(this.props.triggerAction !== prevProps.triggerAction) {
// do something meaningful here, perform user flow, stop recording, whatever
}
}
...
}
const mapStateToProps = (state) => {
return({
triggerAction: state.triggerAction
})
}
export default connect(mapStateToProps)(MyListenerComponent)
动作触发器(发布者)
this.props.dispatch({type: 'TRIGGER_ACTION', triggerAction: 'some data here'})
减速器:
switch(action.type) {
case 'TRIGGER_ACTION':
return ({
...state,
triggerAction: action.triggerAction,
})
}