Comments (8)
While I understand the code splitting requirement. I tend to not agree with starting sagas from inside containers elements. Perhaps, it'd be better to start the dynamic sagas in the same place we update the store. For example, if we load some dynamic module with new reducers and sagas I can imagine
function updateAppWithNewModule(module) {
updateStoreWithNewReducer( module.reducer )
runSaga(module.saga)
}
FYI, I've already pushed changes in the master branch which include runSaga
support (along with monitoring support).
from redux-saga.
Yeah a component was probably a bad example (though I have been curious if proc
could be used locally within a component to manage complex flows). I mainly wanted to show the cancelling of saga on unmount.
Starting the saga at module load time seems like the correct approach; I could see this working well with dynamic routes in react-router.
from redux-saga.
though I have been curious if proc could be used locally within a component to manage complex flows
technically yes. actually proc has a signature like (iterator, subscribe, dispatch) -> Promise
. So you can hookup take
and put
to any external input/output (aka csp channels). But I wouldn't recommend using an internal function, as the signature may change in the future.
This is another item on my todo list. Initially, I imagined runSaga(iterator, {subscribe, dispatch})
which would work with Redux Stores out of the box. But the store doesn't actually provide the triggered action to its subscribers, and I read in a related Redux issue that this is intentional (reduxjs/redux#1057).
Another solution I m considering is keeping the generic runSaga(iterator, {subscribe, dispatch})
and exposing the utility function storeChannel
so we'll end up with something like
runSaga( iterator, storeChannel(store) )
With the benefit of being able to connect the Saga to any external channel
from redux-saga.
I do like the idea of keeping it generic, would remove the need for things like emitterFromStore
or store enhancers mentioned in #13.
Is there a common interface that other libraries seem to be using for channel like functionality? closest thing I can think of is Rx.Subject.
from redux-saga.
Is there a common interface that other libraries seem to be using for channel like functionality? closest thing I can think of is Rx.Subject
Node duplex streams seems to mimics channel's take/put, but uses 2 independent channels reads/writes. It doesn't also use promises for communication
from redux-saga.
FYI. the new v0.4.0 supports runSaga
from redux-saga.
π
from redux-saga.
ηηθΏδΈͺοΌ https://github.com/GuillaumeCisco/redux-sagas-injector
from redux-saga.
Related Issues (20)
- TypeError: Cannot assign to read only property 'cont' of object '#<Object>' HOT 1
- yield and takeLatest not working with jest HOT 8
- Waiting for an action with takeMaybe / take after END is dispatched for SSR HOT 7
- Is it possible to selectively cancel tasks in an actionChannel? Ie cancel the 3rd task out of 5 running ones. HOT 5
- Is it possible for a saga to "trace" the effect "chain"? HOT 4
- Delay inside of while loop may never fire with React Native 0.71.6 HOT 2
- UI freezes when chrome devtools is open HOT 4
- Redux 4.0 - Unable to access updated data using useSelector HOT 2
- could we add leading/trailing edge options for debounce? HOT 3
- Workflow has flaw
- Why not use the await and async instead of the generator and yield? HOT 1
- TS2345 error while putting thunk actions
- React native Redux Saga with Redux Tollkit
- Module '"redux-saga/effects"' has no exported member 'call'. HOT 4
- Is there a standard way to break while true loops with call effect when END is dispatched? HOT 1
- Can put type improvements be released downstream? HOT 2
- Sending very large files, tasks in parallel are using a lot of memory
- How to use package that use redux-saga as dependency when its in webpack externals? HOT 7
- Help me connect redux-saga with Nextjs 13.5 using app router HOT 2
- Update peer dependencies to include `redux@5` (currently beta) HOT 14
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
π Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. πππ
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google β€οΈ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from redux-saga.