Comments (4)
I guess we still might want the unsubscribe
method exposed, as that gives the user a way of disconnecting the router state from the history (unsubscribing the store from the browser history) if they **really ** needed to.
So for the name: I guess mobx-state-tree-react-router
rolls off the tongue nicely...
Maybe just mst-react-router
would work.
I'd be happy to quickly whip up the library in the next couple of days to get a basic first concept going.
I'll link it back on here when it's up so you can take a look and suggest any changes ๐
from mobx-react-router.
I'm open to it, and it doesn't seem like too much extra code.
However, I'm just considering how to go about it. As there will need to be a peer dependency on mobx-state-tree
in this library (because of the types.model
stuff), even people not using mobx-state-tree
will get "missing peer dependencies" warnings constantly.
It seems that the best way to go about this (unfortunately) might be to create another router binding library specifically for mobx-state-tree
.
mobx-state-tree
has such a different API to pure mobx
observables, that trying to merge router bindings for both probably doesn't make sense.
Open for discussion though.
Edit:
Actually users would be required to install MST
, because of the references to types.model
, unless we create a completely separate target (bundle) for MST
users
from mobx-react-router.
True, I'm also for the idea of a different library, quite some things would be different.
For example you wouldn't need the subscribe
and unsubscribe
methods with mobx-state-tree, thanks to its helper function onSnapshot
(or others) to which you can pass the router branch.
For example this is my simple implementation of the syncHistoryWithStore function
export const syncHistoryWithStore = (history, store) => {
// Set initial history and location
store._setHistory(history)
store._setLocation(history.location)
// Handle update from history object
history.listen(location => store._setLocation(location))
return history
}
from mobx-react-router.
Took a bit longer than I hoped, but v1.0.0
is now live: https://github.com/alisd23/mst-react-router.
Thanks @dbertella and @marcofugaro for the help with the initial investigation/code.
๐ ๐ ๐ ๐ฎ
from mobx-react-router.
Related Issues (20)
- Newly created store missing history and location in react-router 6.x HOT 31
- mobx-react-router/Router not exported HOT 1
- Doc with react-router-v6 is missing.
- Remove support for decorators
- New react-router typings causes mismatch with mobx-react-router HOT 3
- Nested routes HOT 2
- Any way to update a hash route? HOT 1
- .. with Typescript Property 'routing' does not exist on type 'Readonly<{ children?: ReactNode; }> & Readonly<{}> HOT 4
- How to get route params? HOT 4
- update peer dependencies HOT 1
- [question] this vs react-router-dom HOT 1
- n element descriptor's .kind property must be either โmethodโ or โfieldโ HOT 2
- Issue with TypeScript when trying to use SynchronizedHistory from RouterStore HOT 1
- How to send params to other pages? HOT 3
- Compatible with Server Side Rendering? HOT 2
- Update Peer Dependency HOT 3
- Server Side Rendering is broken in v4.0.6 HOT 1
- Pass state with RoutingStore.push() HOT 1
- Looking for maintainers HOT 11
- will v3 with latest mobx? HOT 3
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 mobx-react-router.