Comments (7)
Not sure if we're throwing error for this. The calls will be deferred, but it may still cause issues. We currently have circular dependency checks and some tests for them, e.g. this one, but not for this specific case.
The strategy is to throw errors (fail fast) since circular data flows is an error in design of the application that is being built.
from refluxjs.
It's difficult to detect such things. I think it should be a convention that stores should not trigger actions.
from refluxjs.
Stores calling an action violates the unidirectional data flow of flux. You may instead output a warning for users to directly use the stores underlying an action they're using.
from refluxjs.
Yes. If you want store A to notify store B that something has been changed, you shouldn't let store A call an action which store B listened to, instead just let store B listen to store A.
from refluxjs.
@dashed Well... the use case I know of is a store that handles web api, i.e. perform ajax requests. Since stores are designed to be listened on change events, they still need to send off HTTP errors from the requests.
Simplest way is to invoke an action that initiates flows for error handling so that components and other stores don't need to listen to errors they don't care about... alternatively is that the store sends a promise, but that makes things a bit more convoluted for error handlers.
from refluxjs.
eeh..
I deleted my comment by accident...
from refluxjs.
Closing this issue since there isn't much that can be done practically. If you manage to get an infinite loop, you need to redesign the application's data flows so that it doesn't.
Common sense, unless anyone knows of a good way of detecting such calls without a taxing overhead.
from refluxjs.
Related Issues (20)
- init not firing HOT 1
- Object doesn't support property or method 'createActions' IE 11 HOT 1
- Support of React.js v16 HOT 6
- How are keys handled if a component is attached to multiple stores with the same key? HOT 2
- Async/await pattern with async actions HOT 3
- can we have react 16.x compatibility HOT 4
- TypeError: str.listen is not a function HOT 1
- Extending Reflux Store HOT 1
- async in Server Rendering HOT 1
- TypeError: Super expression must either be null or a function, not undefined HOT 1
- setState callback not executed in store HOT 2
- setState should support callbacks, same as the typical react setState HOT 1
- reflux store this.setState callback
- Store listening to actions after dismount
- async actions return undefined instead of Promise HOT 3
- Cannot Use Reflux Components With React getDerivedStateFromProps() Static Method HOT 3
- Roadmap questions HOT 5
- react组件中获取元素节点,使用focus方法,报错focus未定义
- Feature Request: Make Reflux available for Functional Components HOT 1
- Please mark project as dead
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 refluxjs.