1
在redux中,如果特定的減速器狀態發生更改,我想顯示一個模態。只有在用戶正在查看特定組件時纔有意義。我用容器的mapDispatchToProps(publishState來自減速):根據減速器狀態變化在特定組件中分配動作
const mapDispatchToProps = (stateProps, dispatchProps, ownProps) => {
const {dispatch} = dispatchProps;
const {appType, publishState, publishStages} = stateProps;
const isWebsite = (appType !== 'MOBILE');
switch (publishState.stage) {
case publishStages.GENERATING_BUILDREQUEST:
case publishStages.WAITING:
case publishStages.WORKING:
case publishStages.UPLOADING:
dispatch(showModal(modalTypes.PUBLISH_MODAL, {isWebsite}));
break;
case publishStages.COMPLETED:
dispatch(showModal(modalTypes.PUBLISH_SUCCESS_MODAL, {isWebsite}));
break;
case publishStages.ERROR:
dispatch(showModal(modalTypes.PUBLISH_FAILURE_MODAL, {isWebsite}));
break;
default:
dispatch(closeModal());
}
return {...
然而,這並不覺得優雅的人們不會想到的映射功能來調整狀態。任何想法如何正確實現這一目標?
事情是我只想在特定組件可見時看到模態。也許我可以使用你的建議方法2與componentDidMount/componentWillUnmount來調整isModalVisible減速器參數。 – Guy
如果模態僅依賴於組件,您還可以執行的操作是管理組件本身的打開/關閉狀態,而不是涉及到redux。 Redux表示應用程序的狀態,可以認爲模式只是該組件的一部分,與redux狀態無關。有時這種簡單的修復使應用程序的方式更易於理解和推理。 –