Comments (4)
Ok I have no idea why, but after I replaced with props.transition.router.stateService
and executed a successful go
, for an unknown reason now useRouter
works again.
Truly speechless.
from react.
@mallowigi thanks for the report... I'm not sure why this would happen. This commit is the only thing that seems remotely related: 834c755 which initializes the router object on the first render (and renders null
), then renders the children on all subsequent renders. This code was written this way to handle react strict mode's intentional double renders.
The useRouter
code is a simple wrapper for useContext
and should have normal react context behaviors
https://github.com/ui-router/react/blob/master/src/hooks/useRouter.ts#L29
I dropped your code into a stackblitz and couldn't reproduce the problem https://stackblitz.com/edit/react-pwx5fi
I'm not sure what caused the behavior, but if it can be reproduced, I'd love to fix it in the codebase.
from react.
Oh wow, I just encountered this same error! The problem was due to using useRouter
inside the same component as the one that renders the <UIRouter/>
component. In other words:
function App() {
const currentState = useRouter().globals.current; // kaboom, the router isn't in context for this component
return (
<UIRouter
config={config}
plugins={[pushStateLocationPlugin]}
states={states}
>
current state: {currentState.name}
<UIView/>
</UIRouter>
</RecoilRoot>
</StylesProvider>
</React.StrictMode>
);
);
In my case, pulling the <UIRouter/>
up one level was what I needed to do:
https://github.com/ui-router/sticky-states/blob/master/examples/create-react-app/src/App.js#L36-L42
from react.
I don't think it was the same setup but I'll try to reproduce from a brand new project and tell you the results. Thanks!
from react.
Related Issues (20)
- Can ui-router/react support React18 new features? HOT 6
- testing ui router with relative paths
- {location: 'replace'} doesn't work in stateService.go(stateName, params, {location: 'replace'}) HOT 1
- useSref: "target="_blank" ignored when link contains child elements HOT 1
- Is this project still under active development? HOT 3
- Use same UIRouter instance inside different React.render(...) HOT 1
- Typescript demo errors on `1.0.1` HOT 1
- animating-transitions demo errors on `1.0.1` HOT 1
- Router.start() called more than once HOT 1
- 404 on react-dom.js on the tutorial pages HOT 2
- Path duplication after page refresh when using UIRouter pushStateLocationPlugin HOT 4
- Params of type json are not deserialized properly HOT 5
- States not gets enabled if there are nested lazy loaded states HOT 2
- UIView Doesn't Render with Usage of `urlService.rules.when` HOT 4
- Scroll restoration HOT 3
- Jest/Enzyme Transition Rejection/TypeError HOT 1
- UISref Component ignores target="_blank" on child anchor tag HOT 3
- Mocking UiRouter Classes with Jest HOT 4
- useCurrentStateAndParams don't reacting on initial state HOT 5
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 react.