Skip to content

Conversation

@jong-kyung
Copy link
Contributor

@jong-kyung jong-kyung commented Jan 15, 2026

fixes #6385

This PR fixes issue #6385, where useParams({ strict: false }) in a parent route would return unparsed parameter values from a child route.

The Fix

The fix the issue by ensuring that parsed parameters from child routes are correctly propagated to their parents when strict: false is used.

  1. Correct Parameter Propagation: The router's internal matching logic was updated. When a route match is being processed, it now correctly looks up the previous match's state, which includes its parsed parameters, and merges them. This ensures the parsed values are available throughout the route hierarchy.

  2. Performance Optimization: As part of the fix, the mechanism for retrieving previous route matches was optimized. The implementation was changed from using Array.prototype.find() to a Map-based lookup. This improves performance from O(n) to O(1), which is especially beneficial in applications with many routes.

Changes

  • packages/router-core/src/router.ts: Updated the core routing logic to correctly handle parameter propagation and implemented the Map-based optimization for match retrieval.
  • packages/react-router/tests/useParams.test.tsx: Added a new unit test to specifically verify that useParams({ strict: false }) receives parsed values.
  • e2e/react-router/basic-file-based/**: Added new routes and an e2e test to confirm the fix in a real-world file-based routing scenario.

Summary by CodeRabbit

Release Notes

  • Tests

    • Added end-to-end test coverage for parameter parsing with strict:false option in nested routes
    • Added unit tests validating parameter retrieval and parsing in hook functionality
  • Refactor

    • Optimized router parameter handling with efficient match caching to improve lookup performance

✏️ Tip: You can customize this high-level summary in your review settings.

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Jan 15, 2026

📝 Walkthrough

Walkthrough

This PR adds support for useParams({ strict: false }) to properly return parsed child route params in parent routes. It introduces new test routes demonstrating param parsing in a child route and a parent route consuming those parsed params with strict: false, alongside core router logic changes that cache previous matches by routeId and merge parent params with newly computed child params.

Changes

Cohort / File(s) Summary
Generated Route Tree
e2e/react-router/basic-file-based/src/routeTree.gen.ts
Registers new /params-ps/strict-false and /params-ps/strict-false/$version routes with parent-child relationships, type mappings (FileRoutesByFullPath, FileRoutesByTo, FileRoutesById), and module augmentation for TanStack React Router.
E2E Route Implementation
e2e/react-router/basic-file-based/src/routes/params-ps/index.tsx, e2e/react-router/basic-file-based/src/routes/params-ps/strict-false/route.tsx, e2e/react-router/basic-file-based/src/routes/params-ps/strict-false/$version.route.tsx
Adds parent and child route components demonstrating parsed param usage. Child route defines integer parsing/stringification for version param; parent route reads params with strict: false and renders type/value, plus links to child routes.
Test Suites
e2e/react-router/basic-file-based/tests/params.spec.ts, packages/react-router/tests/useParams.test.tsx
E2E and unit tests verifying that useParams({ strict: false }) returns parsed params after child navigation, confirming param type is number and values are correctly returned.
Core Router Logic
packages/router-core/src/router.ts
Introduces previousMatchesByRouteId cache to enable constant-time lookup of previous matches, replaces linear scans with map lookups, and adds param-merging logic to update match.params using previous match params merged with newly computed routeParams via replaceEqualDeep.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

Possibly related PRs

Suggested labels

package: router-core, package: react-router

Suggested reviewers

  • schiller-manuel
  • Sheraff

Poem

A rabbit hopped through param trees so deep,
Strict: false now learns what children keep,
Parsed numbers flow from branch to root,
Previous matches bear sweet fruit! 🐰✨

🚥 Pre-merge checks | ✅ 4 | ❌ 1
❌ Failed checks (1 warning)
Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title 'fix(router): ensure useParams returns parsed params when strict is false' accurately and concisely describes the main fix addressing the issue where useParams with strict:false was not returning parsed parameter values.
Linked Issues check ✅ Passed The PR implementation fully addresses issue #6385 by adding parsed parameter merge logic, Map-based optimization, and comprehensive tests (unit and e2e) that verify parsed parameters are correctly returned when strict:false.
Out of Scope Changes check ✅ Passed All changes are scoped to the fix: core router logic for param merging, optimization of match lookup with Map, new test files for verification, and example routes demonstrating the fix—all directly related to the stated objectives.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing touches
  • 📝 Generate docstrings

🧹 Recent nitpick comments
e2e/react-router/basic-file-based/src/routes/params-ps/strict-false/route.tsx (1)

12-44: Minor: consider avoiding rendering "undefined" when version is absent.
If /params-ps/strict-false is visited without a child, String(version) becomes "undefined"; not wrong, just slightly noisy for a fixture UI.

Proposed tweak
-        <span data-testid="strict-false-version-value">{String(version)}</span>
+        <span data-testid="strict-false-version-value">
+          {version == null ? '' : String(version)}
+        </span>
e2e/react-router/basic-file-based/src/routes/params-ps/strict-false/$version.route.tsx (1)

3-15: Harden version parsing (radix + NaN guard).
This makes the fixture deterministic and avoids silently producing NaN.

Proposed change
 export const Route = createFileRoute('/params-ps/strict-false/$version')({
   params: {
     parse: (params) => ({
       ...params,
-      version: parseInt(params.version),
+      version: (() => {
+        const v = Number.parseInt(params.version, 10)
+        if (Number.isNaN(v)) {
+          throw new Error('Invalid version param')
+        }
+        return v
+      })(),
     }),
     stringify: (params) => ({
       ...params,
       version: `${params.version}`,
     }),
   },
   component: RouteComponent,
 })
packages/router-core/src/router.ts (1)

1403-1512: Optional: preserve param structural sharing when existingMatch exists but previousMatch doesn’t.
In that scenario (eg a cached/preloaded match), params: routeParams will always change identity vs using replaceEqualDeep(existingMatch.params, routeParams) (consistent with the search handling).

Possible adjustment
-          params: previousMatch
-            ? replaceEqualDeep(previousMatch.params, routeParams)
-            : routeParams,
+          params: previousMatch
+            ? replaceEqualDeep(previousMatch.params, routeParams)
+            : replaceEqualDeep(existingMatch.params, routeParams),

📜 Recent review details

Configuration used: defaults

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 86605e3 and e5ce02e.

📒 Files selected for processing (7)
  • e2e/react-router/basic-file-based/src/routeTree.gen.ts
  • e2e/react-router/basic-file-based/src/routes/params-ps/index.tsx
  • e2e/react-router/basic-file-based/src/routes/params-ps/strict-false/$version.route.tsx
  • e2e/react-router/basic-file-based/src/routes/params-ps/strict-false/route.tsx
  • e2e/react-router/basic-file-based/tests/params.spec.ts
  • packages/react-router/tests/useParams.test.tsx
  • packages/router-core/src/router.ts
🧰 Additional context used
📓 Path-based instructions (2)
**/*.{ts,tsx}

📄 CodeRabbit inference engine (AGENTS.md)

Use TypeScript strict mode with extensive type safety for all code

Files:

  • packages/react-router/tests/useParams.test.tsx
  • e2e/react-router/basic-file-based/src/routes/params-ps/index.tsx
  • e2e/react-router/basic-file-based/tests/params.spec.ts
  • packages/router-core/src/router.ts
  • e2e/react-router/basic-file-based/src/routes/params-ps/strict-false/route.tsx
  • e2e/react-router/basic-file-based/src/routes/params-ps/strict-false/$version.route.tsx
  • e2e/react-router/basic-file-based/src/routeTree.gen.ts
**/*.{js,ts,tsx}

📄 CodeRabbit inference engine (AGENTS.md)

Implement ESLint rules for router best practices using the ESLint plugin router

Files:

  • packages/react-router/tests/useParams.test.tsx
  • e2e/react-router/basic-file-based/src/routes/params-ps/index.tsx
  • e2e/react-router/basic-file-based/tests/params.spec.ts
  • packages/router-core/src/router.ts
  • e2e/react-router/basic-file-based/src/routes/params-ps/strict-false/route.tsx
  • e2e/react-router/basic-file-based/src/routes/params-ps/strict-false/$version.route.tsx
  • e2e/react-router/basic-file-based/src/routeTree.gen.ts
🧠 Learnings (11)
📓 Common learnings
Learnt from: CR
Repo: TanStack/router PR: 0
File: AGENTS.md:0-0
Timestamp: 2025-12-06T15:03:07.223Z
Learning: Applies to **/*.{js,ts,tsx} : Implement ESLint rules for router best practices using the ESLint plugin router
Learnt from: Sheraff
Repo: TanStack/router PR: 6171
File: packages/router-core/src/new-process-route-tree.ts:898-898
Timestamp: 2025-12-21T12:52:35.231Z
Learning: In `packages/router-core/src/new-process-route-tree.ts`, the matching logic intentionally allows paths without trailing slashes to match index routes with trailing slashes (e.g., `/a` can match `/a/` route), but not vice-versa (e.g., `/a/` cannot match `/a` layout route). This is implemented via the condition `!pathIsIndex || node.kind === SEGMENT_TYPE_INDEX` and is a deliberate design decision to provide better UX by being permissive with missing trailing slashes.
Learnt from: CR
Repo: TanStack/router PR: 0
File: AGENTS.md:0-0
Timestamp: 2025-12-06T15:03:07.223Z
Learning: Implement type-safe routing with search params and path params
📚 Learning: 2025-10-14T18:59:33.990Z
Learnt from: FatahChan
Repo: TanStack/router PR: 5475
File: e2e/react-start/basic-prerendering/src/routes/redirect/$target/via-beforeLoad.tsx:8-0
Timestamp: 2025-10-14T18:59:33.990Z
Learning: In TanStack Router e2e test files, when a route parameter is validated at the route level (e.g., using zod in validateSearch or param validation), switch statements on that parameter do not require a default case, as the validation ensures only expected values will reach the switch.

Applied to files:

  • packages/react-router/tests/useParams.test.tsx
  • e2e/react-router/basic-file-based/tests/params.spec.ts
  • e2e/react-router/basic-file-based/src/routes/params-ps/strict-false/route.tsx
  • e2e/react-router/basic-file-based/src/routeTree.gen.ts
📚 Learning: 2025-12-21T12:52:35.231Z
Learnt from: Sheraff
Repo: TanStack/router PR: 6171
File: packages/router-core/src/new-process-route-tree.ts:898-898
Timestamp: 2025-12-21T12:52:35.231Z
Learning: In `packages/router-core/src/new-process-route-tree.ts`, the matching logic intentionally allows paths without trailing slashes to match index routes with trailing slashes (e.g., `/a` can match `/a/` route), but not vice-versa (e.g., `/a/` cannot match `/a` layout route). This is implemented via the condition `!pathIsIndex || node.kind === SEGMENT_TYPE_INDEX` and is a deliberate design decision to provide better UX by being permissive with missing trailing slashes.

Applied to files:

  • e2e/react-router/basic-file-based/src/routes/params-ps/index.tsx
  • packages/router-core/src/router.ts
  • e2e/react-router/basic-file-based/src/routes/params-ps/strict-false/route.tsx
  • e2e/react-router/basic-file-based/src/routes/params-ps/strict-false/$version.route.tsx
  • e2e/react-router/basic-file-based/src/routeTree.gen.ts
📚 Learning: 2025-12-17T02:17:55.086Z
Learnt from: schiller-manuel
Repo: TanStack/router PR: 6120
File: packages/router-generator/src/generator.ts:654-657
Timestamp: 2025-12-17T02:17:55.086Z
Learning: In `packages/router-generator/src/generator.ts`, pathless_layout routes must receive a `path` property when they have a `cleanedPath`, even though they are non-path routes. This is necessary because child routes inherit the path from their parent, and without this property, child routes would not have the correct full path at runtime.

Applied to files:

  • e2e/react-router/basic-file-based/src/routes/params-ps/index.tsx
  • e2e/react-router/basic-file-based/src/routes/params-ps/strict-false/route.tsx
  • e2e/react-router/basic-file-based/src/routes/params-ps/strict-false/$version.route.tsx
  • e2e/react-router/basic-file-based/src/routeTree.gen.ts
📚 Learning: 2025-12-06T15:03:07.223Z
Learnt from: CR
Repo: TanStack/router PR: 0
File: AGENTS.md:0-0
Timestamp: 2025-12-06T15:03:07.223Z
Learning: Applies to **/*.{js,ts,tsx} : Implement ESLint rules for router best practices using the ESLint plugin router

Applied to files:

  • e2e/react-router/basic-file-based/src/routes/params-ps/index.tsx
  • e2e/react-router/basic-file-based/tests/params.spec.ts
  • e2e/react-router/basic-file-based/src/routes/params-ps/strict-false/route.tsx
  • e2e/react-router/basic-file-based/src/routes/params-ps/strict-false/$version.route.tsx
  • e2e/react-router/basic-file-based/src/routeTree.gen.ts
📚 Learning: 2025-12-06T15:03:07.223Z
Learnt from: CR
Repo: TanStack/router PR: 0
File: AGENTS.md:0-0
Timestamp: 2025-12-06T15:03:07.223Z
Learning: Implement type-safe routing with search params and path params

Applied to files:

  • e2e/react-router/basic-file-based/src/routes/params-ps/index.tsx
  • e2e/react-router/basic-file-based/src/routes/params-ps/strict-false/route.tsx
  • e2e/react-router/basic-file-based/src/routeTree.gen.ts
📚 Learning: 2025-10-08T08:11:47.088Z
Learnt from: nlynzaad
Repo: TanStack/router PR: 5402
File: packages/router-generator/tests/generator/no-formatted-route-tree/routeTree.nonnested.snapshot.ts:19-21
Timestamp: 2025-10-08T08:11:47.088Z
Learning: Test snapshot files in the router-generator tests directory (e.g., files matching the pattern `packages/router-generator/tests/generator/**/routeTree*.snapshot.ts` or `routeTree*.snapshot.js`) should not be modified or have issues flagged, as they are fixtures used to verify the generator's output and are intentionally preserved as-is.

Applied to files:

  • e2e/react-router/basic-file-based/tests/params.spec.ts
  • packages/router-core/src/router.ts
  • e2e/react-router/basic-file-based/src/routes/params-ps/strict-false/route.tsx
  • e2e/react-router/basic-file-based/src/routes/params-ps/strict-false/$version.route.tsx
  • e2e/react-router/basic-file-based/src/routeTree.gen.ts
📚 Learning: 2025-12-06T15:03:07.223Z
Learnt from: CR
Repo: TanStack/router PR: 0
File: AGENTS.md:0-0
Timestamp: 2025-12-06T15:03:07.223Z
Learning: Use file-based routing in `src/routes/` directories or code-based routing with route definitions

Applied to files:

  • e2e/react-router/basic-file-based/src/routes/params-ps/strict-false/route.tsx
📚 Learning: 2025-10-01T18:31:35.420Z
Learnt from: schiller-manuel
Repo: TanStack/router PR: 5330
File: e2e/react-start/custom-basepath/src/routeTree.gen.ts:58-61
Timestamp: 2025-10-01T18:31:35.420Z
Learning: Do not review files named `routeTree.gen.ts` in TanStack Router repositories, as these are autogenerated files that should not be manually modified.

Applied to files:

  • e2e/react-router/basic-file-based/src/routes/params-ps/strict-false/route.tsx
  • e2e/react-router/basic-file-based/src/routes/params-ps/strict-false/$version.route.tsx
  • e2e/react-router/basic-file-based/src/routeTree.gen.ts
📚 Learning: 2025-09-28T21:41:45.233Z
Learnt from: nlynzaad
Repo: TanStack/router PR: 5284
File: e2e/react-start/basic/server.js:50-0
Timestamp: 2025-09-28T21:41:45.233Z
Learning: In Express v5, catch-all routes must use named wildcards. Use `/*splat` to match everything except root path, or `/{*splat}` (with braces) to match including root path. The old `*` syntax is not allowed and will cause "Missing parameter name" errors. This breaking change requires explicit naming of wildcard parameters.

Applied to files:

  • e2e/react-router/basic-file-based/src/routeTree.gen.ts
📚 Learning: 2025-09-22T00:56:49.237Z
Learnt from: nlynzaad
Repo: TanStack/router PR: 5182
File: e2e/react-router/basic-file-based/src/routes/non-nested/named/$baz_.bar.tsx:3-5
Timestamp: 2025-09-22T00:56:49.237Z
Learning: In TanStack Router, underscores are intentionally stripped from route segments (e.g., `$baz_` becomes `baz` in generated types) but should be preserved in base path segments. This is the correct behavior as of the fix in PR `#5182`.

Applied to files:

  • e2e/react-router/basic-file-based/src/routeTree.gen.ts
🧬 Code graph analysis (3)
packages/router-core/src/router.ts (1)
packages/router-core/src/utils.ts (1)
  • replaceEqualDeep (222-272)
e2e/react-router/basic-file-based/src/routes/params-ps/strict-false/route.tsx (2)
e2e/react-router/basic-file-based/src/routes/params-ps/index.tsx (1)
  • Route (3-5)
e2e/react-router/basic-file-based/src/routes/params-ps/strict-false/$version.route.tsx (1)
  • Route (3-15)
e2e/react-router/basic-file-based/src/routes/params-ps/strict-false/$version.route.tsx (2)
e2e/react-router/basic-file-based/src/routes/params-ps/index.tsx (1)
  • Route (3-5)
e2e/react-router/basic-file-based/src/routes/params-ps/strict-false/route.tsx (1)
  • Route (8-10)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (2)
  • GitHub Check: Test
  • GitHub Check: Preview
🔇 Additional comments (9)
e2e/react-router/basic-file-based/src/routes/params-ps/strict-false/route.tsx (1)

8-10: Route wiring looks correct for the strict:false params fixture.

e2e/react-router/basic-file-based/src/routes/params-ps/strict-false/$version.route.tsx (1)

17-21: Fixture component is minimal and fits the test intent.

packages/router-core/src/router.ts (2)

1306-1309: Good: Map-based previous-match lookup removes repeated linear scans.


1533-1575: This second pass is the right place to propagate parsed child params to parents.
Updating match.params after all routes have had a chance to parse ensures useParams({ strict: false }) can observe parsed values from deeper matches.

e2e/react-router/basic-file-based/src/routeTree.gen.ts (1)

1-10: Autogenerated file; skipping manual review. Based on learnings, this file shouldn’t be hand-edited.

e2e/react-router/basic-file-based/src/routes/params-ps/index.tsx (1)

125-146: Links to the strict-false parsed-param fixture look correct.

e2e/react-router/basic-file-based/tests/params.spec.ts (1)

496-520: LGTM! Well-structured e2e test for the strict: false param parsing fix.

The test effectively verifies the core fix by:

  1. Navigating from parent to child route with parsed params
  2. Asserting both the type (number) and value of the parsed param
  3. Testing navigation to multiple versions to confirm consistency

The test follows existing patterns in this file and provides good coverage for the reported issue.

packages/react-router/tests/useParams.test.tsx (2)

252-320: LGTM! This unit test directly validates the fix for issue #6385.

The test correctly:

  1. Sets up the exact scenario from the bug report (parent route with strict: false accessing child route's parsed params)
  2. Defines a version param that parses to number in the child route
  3. Verifies that typeof version returns "number" at runtime, confirming the fix restores runtime/type consistency
  4. Tests both initial load and navigation to ensure parsed params propagate correctly

This provides excellent regression coverage for the reported issue.


277-294: Clean component setup for testing the fix.

The ParentComponent design elegantly demonstrates the issue and fix:

  • Uses useParams({ strict: false }) exactly as described in the bug report
  • Renders typeof version to verify runtime type matches TypeScript expectations
  • String(version) handles the value safely for rendering

✏️ Tip: You can disable this entire section by setting review_details to false in your review settings.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@nx-cloud
Copy link

nx-cloud bot commented Jan 15, 2026

View your CI Pipeline Execution ↗ for commit e5ce02e

Command Status Duration Result
nx affected --targets=test:eslint,test:unit,tes... ✅ Succeeded 1m 43s View ↗
nx run-many --target=build --exclude=examples/*... ✅ Succeeded 3s View ↗

☁️ Nx Cloud last updated this comment at 2026-01-15 12:05:10 UTC

@pkg-pr-new
Copy link

pkg-pr-new bot commented Jan 15, 2026

More templates

@tanstack/arktype-adapter

npm i https://pkg.pr.new/TanStack/router/@tanstack/arktype-adapter@6387

@tanstack/eslint-plugin-router

npm i https://pkg.pr.new/TanStack/router/@tanstack/eslint-plugin-router@6387

@tanstack/history

npm i https://pkg.pr.new/TanStack/router/@tanstack/history@6387

@tanstack/nitro-v2-vite-plugin

npm i https://pkg.pr.new/TanStack/router/@tanstack/nitro-v2-vite-plugin@6387

@tanstack/react-router

npm i https://pkg.pr.new/TanStack/router/@tanstack/react-router@6387

@tanstack/react-router-devtools

npm i https://pkg.pr.new/TanStack/router/@tanstack/react-router-devtools@6387

@tanstack/react-router-ssr-query

npm i https://pkg.pr.new/TanStack/router/@tanstack/react-router-ssr-query@6387

@tanstack/react-start

npm i https://pkg.pr.new/TanStack/router/@tanstack/react-start@6387

@tanstack/react-start-client

npm i https://pkg.pr.new/TanStack/router/@tanstack/react-start-client@6387

@tanstack/react-start-server

npm i https://pkg.pr.new/TanStack/router/@tanstack/react-start-server@6387

@tanstack/router-cli

npm i https://pkg.pr.new/TanStack/router/@tanstack/router-cli@6387

@tanstack/router-core

npm i https://pkg.pr.new/TanStack/router/@tanstack/router-core@6387

@tanstack/router-devtools

npm i https://pkg.pr.new/TanStack/router/@tanstack/router-devtools@6387

@tanstack/router-devtools-core

npm i https://pkg.pr.new/TanStack/router/@tanstack/router-devtools-core@6387

@tanstack/router-generator

npm i https://pkg.pr.new/TanStack/router/@tanstack/router-generator@6387

@tanstack/router-plugin

npm i https://pkg.pr.new/TanStack/router/@tanstack/router-plugin@6387

@tanstack/router-ssr-query-core

npm i https://pkg.pr.new/TanStack/router/@tanstack/router-ssr-query-core@6387

@tanstack/router-utils

npm i https://pkg.pr.new/TanStack/router/@tanstack/router-utils@6387

@tanstack/router-vite-plugin

npm i https://pkg.pr.new/TanStack/router/@tanstack/router-vite-plugin@6387

@tanstack/solid-router

npm i https://pkg.pr.new/TanStack/router/@tanstack/solid-router@6387

@tanstack/solid-router-devtools

npm i https://pkg.pr.new/TanStack/router/@tanstack/solid-router-devtools@6387

@tanstack/solid-router-ssr-query

npm i https://pkg.pr.new/TanStack/router/@tanstack/solid-router-ssr-query@6387

@tanstack/solid-start

npm i https://pkg.pr.new/TanStack/router/@tanstack/solid-start@6387

@tanstack/solid-start-client

npm i https://pkg.pr.new/TanStack/router/@tanstack/solid-start-client@6387

@tanstack/solid-start-server

npm i https://pkg.pr.new/TanStack/router/@tanstack/solid-start-server@6387

@tanstack/start-client-core

npm i https://pkg.pr.new/TanStack/router/@tanstack/start-client-core@6387

@tanstack/start-fn-stubs

npm i https://pkg.pr.new/TanStack/router/@tanstack/start-fn-stubs@6387

@tanstack/start-plugin-core

npm i https://pkg.pr.new/TanStack/router/@tanstack/start-plugin-core@6387

@tanstack/start-server-core

npm i https://pkg.pr.new/TanStack/router/@tanstack/start-server-core@6387

@tanstack/start-static-server-functions

npm i https://pkg.pr.new/TanStack/router/@tanstack/start-static-server-functions@6387

@tanstack/start-storage-context

npm i https://pkg.pr.new/TanStack/router/@tanstack/start-storage-context@6387

@tanstack/valibot-adapter

npm i https://pkg.pr.new/TanStack/router/@tanstack/valibot-adapter@6387

@tanstack/virtual-file-routes

npm i https://pkg.pr.new/TanStack/router/@tanstack/virtual-file-routes@6387

@tanstack/vue-router

npm i https://pkg.pr.new/TanStack/router/@tanstack/vue-router@6387

@tanstack/vue-router-devtools

npm i https://pkg.pr.new/TanStack/router/@tanstack/vue-router-devtools@6387

@tanstack/vue-router-ssr-query

npm i https://pkg.pr.new/TanStack/router/@tanstack/vue-router-ssr-query@6387

@tanstack/vue-start

npm i https://pkg.pr.new/TanStack/router/@tanstack/vue-start@6387

@tanstack/vue-start-client

npm i https://pkg.pr.new/TanStack/router/@tanstack/vue-start-client@6387

@tanstack/vue-start-server

npm i https://pkg.pr.new/TanStack/router/@tanstack/vue-start-server@6387

@tanstack/zod-adapter

npm i https://pkg.pr.new/TanStack/router/@tanstack/zod-adapter@6387

commit: e5ce02e

@jong-kyung jong-kyung closed this Jan 15, 2026
@jong-kyung jong-kyung reopened this Jan 15, 2026
@jong-kyung
Copy link
Contributor Author

jong-kyung commented Jan 15, 2026

oops, clicked the wrong button and accidentally closed this! 😅 Reopening now.

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

Projects

None yet

Development

Successfully merging this pull request may close these issues.

useParams({ strict: false }) returns unparsed params

1 participant