Вы не звоните Сагам напрямую.Вы создаете действия через создателей действий, которые затем отправляете в магазин.Вы регистрируете свои саги в промежуточном программном обеспечении саги в своем магазине, чтобы они вызывались каждый раз при получении определенного действия.
Допустим, у вас есть действие CALL_OTHER_FUNCTION
и создатель соответствующего действия callOtherFunction()
.вы отправляете его куда-нибудь, например, в компонент с mapDispatchToProps
:
const mapDispatchToProps = dispatch => {
return {
callOtherFn: () => dispatch(callOtherFunction())
};
};
В вашей саге вам просто нужно прослушать это действие с помощью take()
,takeAll()
, takeLatest()
или другого создателя эффекта , который соответствует вашим потребностям.
export default function* (){
yield all([
takeLatest(TOGGLE_MODAL, toggleModal),
takeLatest(CALL_OTHER_FUNCTION, myOtherFunction]);
}
после этого ваш генератор myOtherFunction
вызывается при каждом действии, которое вы отправляете в магазин.