Comments (3)
Hi @rottmann sorry for the delay in responding.
This is actually not an issue in the router itself, but it's how Svelte works. The "problem" is that your code never causes the CallView
component to be un-mounted (removed from the DOM), so Svelte doesn't re-mount it. You can confirm this behavior by changing the code of CallView.svelte
to:
<script>
import Router, { push } from 'svelte-spa-router'
import CallEditView from './CallEditView.svelte'
import { onMount } from 'svelte'
const routes = {
'/call/edit/:id': CallEditView
}
onMount(async () => {
console.log('mounted')
})
// this is only called one time, when the page load, but not wenn you push the button
// (onMount / async stuff fake)
setTimeout( () => {
push('/call/edit/1')
}, 1000)
</script>
<button on:click={() => push('/call/') }>Go to /call/</button><br>
<Router {routes}></Router>
In the console, you'll see that "mounted" appears only once. This is by design.
There's a simple workaround, however, which is to listen on the $location
store. Here's an example with an updated CallView.svelte
:
<script>
import Router, {push, location} from 'svelte-spa-router'
import CallEditView from './CallEditView.svelte'
import {onDestroy} from 'svelte'
const routes = {
'/call/edit/:id': CallEditView
}
const unsubscribe = location.subscribe((val) => {
setTimeout( () => {
console.log('pushing')
push('/call/edit/1')
}, 1000)
})
onDestroy(async () => {
unsubscribe()
})
</script>
<button on:click={() => push('/call/') }>Go to /call/</button><br>
<Router {routes}></Router>
from svelte-spa-router.
Thank you! Other solution could be to react on location change with$: $location
, will try both.
from svelte-spa-router.
The two things are equivalent. The $ syntax behind the scene manages the subscription/un-subscription automatically, as per the svelte documentation!
from svelte-spa-router.
Related Issues (20)
- Nested routes as maps HOT 1
- If I want to go to the login page in the sidebar + SPA form, is it possible with route guard? HOT 4
- Is this not possible in routeLoaded? HOT 5
- What is the black bar in this image? HOT 2
- Feature request: Svelte 4 support HOT 13
- FEATURE REQUEST: pass next() in precondition to decide whether the router should *change* the current route HOT 1
- Load user data HOT 4
- How to check hash-bashed history HOT 1
- Is there an alternative to the "Failed to fetch dynamically import problem" issue in Vite + Svelte spa environment? HOT 1
- WARNING: The following packages have a svelte field in their package.json but no exports condition for svelte. [email protected] HOT 8
- Typescript problematic types after "wrapping" the route HOT 2
- navigating within same component does not work HOT 5
- Typescript support: Package path ./wrap is not exported from package svelte-spa-router HOT 2
- Will the library support Svelte 5? HOT 6
- Authentication and Authorization HOT 6
- Layouts not exists for svelte-spa-router? HOT 6
- Feature request: Nested route priority HOT 1
- children router bug HOT 2
- <Pages> was created with unknown prop 'params' HOT 4
- Typescript complaining about `Type 'WrappedComponent' is not assignable to type 'typeof SvelteComponent<any>'.ts(2322)` HOT 2
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 svelte-spa-router.