Reasons for incomplete support described in this comment. If you have any idea how to make it work, please write me.
Redux-saga plugin for Rematch.
npm install rematch-saga
import { init } from '@rematch/core'
import sagaPlugin from 'rematch-saga'
init({
plugins: [sagaPlugin()]
})
Optionally sagaPlugin
takes sagaMiddleware
. If it is not passed, plugin creates its own middleware.
After including plugin along with async effects you can write sagas:
const count = {
state: 0,
reducers: {
increment(state) {
return state + 1
}
},
effects: {
async incrementAsync() { // usual async effect
await asyncDelay(1000)
this.increment()
},
*incrementAsyncSaga() { // full-featured saga
yield call(delay, 1000)
yield call(this.increment)
}
}
}
Sagas are called like any other effects. See examples/
for more information.