我的页面上有用于属性的组件。它以模式形式打开,并更改redux存储中的属性,尤其是要在搜索结果中显示的许多项目。我还有一个名为Search的组件,该组件基本上使用redux存储进行自我更新。我正在努力的是,我需要知道项目数量的操作创建者何时完成,通知搜索它已完成此操作,因此我可以使用新的项目数量变量执行搜索。
过去,我将使用componentWillRecieveProps并仅检查更改,但这已不再支持getDerivedStateFromProps。这似乎是我可以采取的一种方式,但是我也考虑过使用RXJS调用可观察对象,但是我看不到任何示例可以完成我特意试图完成的工作(通知动作创建者已完成)。有人遇到同样的问题吗? RXJS与getDerivedStateFromProps是哪种更好的选择?我也在使用redux-thunk,但是我看不到以任何方式将订阅绑定到动作创建者的方法。提前致谢。
编辑:示例代码 动作创建者:
export function setNumRecords(val){
return dispatch => {
localStorage.setItem('numRecords', val);
dispatch({type: 'SET_NUM_RECORDS', numRecords:val})
};
}
调度完成后,我想更新搜索组件。我不确定还需要多少代码。
答案 0 :(得分:1)
要在您的应用中设置可观察为中间件的redux:
https://redux-observable.js.org/docs/basics/SettingUpTheMiddleware.html
然后在您的根史诗中,您可以聆听您的动作:
import { ofType } from 'redux-observable';
import {
tap,
mapTo,
} from 'rxjs/operators';
const setNumRecordsEpic = action$ => action$.pipe(
ofType('SET_NUM_RECORDS'),
tap(() => console.log('Here...'))
mapTo({ type: 'SOME_OTHER_ACTION' })
);