Dynamic breadcrumbs in TanStack Start
Learn how to implement breadcrumbs that automatically update after mutations using router.invalidate()
Each route returns a crumb property from its loader function.
The breadcrumb component uses useMatches() to reactively get all matched routes.
Call router.invalidate() to re-run loaders and update breadcrumbs.
// In your route loader
loader: async ({ params }) => {
const data = await fetchData(params.id);
return {
crumb: data.name, // Dynamic breadcrumb!
data,
};
}// After a mutation
const handleSave = async () => {
await updateData({ ... });
await router.invalidate(); // Re-runs loaders!
};