Skip to content

[Bug] QueryParams get erroneously set when entering transition while there's an ongoing transition #20139

Open
@sergiofenoll

Description

@sergiofenoll

🐞 Describe the Bug

I'm encountering some strange behaviour related to queryParams when starting a new transition while an ongoing transition is still loading.
Routes child-a and child-b both have the same queryParams. When child-a has its queryParams set and is mid-transition (because its model hook hasn't resolved yet), if you then navigate to child-b, the second route will have its queryParams erroneously populated. If you instead wait until child-a's model hook has resolved before navigating to child-b, the queryParams won't get populated (as expected).

🔬 Minimal Reproduction

Repro repo: https://github.com/sergiofenoll/weird-qps

Repo is using v3.28.9, but I also tried with 4.4.2 and I encounter the same behaviour.

  • Click on Go to Child A
  • Observe that the Go to Child B link links to /child-b with no query params
  • Click on the Click me to change the value of the queryParams button
  • While the loading page is still visible (it takes 1 second for the model hook to resolve), click on Go to Child B
  • Observe that the query parameters have been set to foo=oof&bar=rab

😕 Actual Behavior

The query parameters of child-b have been populated.

🤔 Expected Behavior

The query parameters of child-b shouldn't be populated, as they were never set to do so.

🌍 Environment

  • Ember: 3.28.9, 4.4.2
  • Node.js/npm: 16.15.1
  • OS: Linux
  • Browser: Firefox

➕ Additional Context

N/A

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions