Подход, который я обычно использую, заключается в том, чтобы сага обновляла значение в хранилище с избыточностью, и компонент проверял это изменение.Это может включать в себя запуск некоторого кода в componentDidUpdate.
Если вы хотите избежать добавления чего-либо в магазин, я могу подумать о другой возможности, хотя и немного более сложной: вы можете создать обещание и передатьего разрешение и отклонение методов как часть действия, которое вы отправляете.Тогда в саге он мог призвать тех, кто решил обещание.Например:
export function* addDepartment(action) {
const { department, resolve, reject } = action;
try {
// do something async with department
resolve();
} catch (ex) {
reject(ex);
}
}
Для использования в mapDispatchToProps компонента, например:
const mapDispatchToProps = (dispatch) => ({
add: (department) => {
return new Promise((resolve, reject) => {
dispatch({ type: 'ADD', department, resolve, reject });
});
}
});
... и в самом компоненте, например:
this.props.add('some department')
.then(() => this.setState({ department: '' })
.catch((err) => console.log('an error occurred', err));