Vigia

react-i18next upgraden van 17.x naar 18.x

Vergelijking van de publieke API van react-i18next 17.1.13 en 18.0.0, automatisch berekend uit hun TypeScript-types. Een gewijzigde signatuur is een mogelijke brekende wijziging, geen zekerheid.

Samenvatting

Verwijderde importpaden0
Verwijderde exports0
Gewijzigde signaturen5
Verwijderde leden van klassen of interfaces0
Gewijzigde leden van klassen of interfaces0
Nieuw als verouderd gemarkeerd1
Gewijzigde vereisten (engines, peer-afhankelijkheden)3
Nieuwe exports1

Verwijderde exports

Niets gevonden.

Gewijzigde signaturen

exportVoorNa
react-i18next · useSSR(initialI18nStore: Resource, initialLanguage: string): void(initialI18nStore: Resource, initialLanguage: string, props?: { i18n?: any; } | undefined): void
react-i18next · ErrorCode"NO_I18NEXT_INSTANCE" | "NO_LANGUAGES" | "DEPRECATED_OPTION" | "TRANS_NULL_VALUE" | "TRANS_INVALID_OBJ" | "TRANS_INVALID_VAR" | "TRANS_INVALID_COMPONENTS" | "USE_T_BEFORE_READY" | "SUSPENDED_WHILE_LOADING""NO_I18NEXT_INSTANCE" | "NO_LANGUAGES" | "DEPRECATED_OPTION" | "TRANS_NULL_VALUE" | "TRANS_INVALID_OBJ" | "TRANS_INVALID_VAR" | "TRANS_INVALID_COMPONENTS" | "USE_T_BEFORE_READY" | "SUSPENDED_WHILE_LOADING" | "I18N_NOT_INITIALIZED" | "ICU_TRANS_RENDER_ERROR" | "GLOBAL_INSTANCE_ON_SERVER"
react-i18next · I18nContextReact.Context<{ i18n: i18n; }>React.Context<{ i18n: i18n; defaultNS?: string | string[] | undefined; } | undefined>
react-i18next · useTranslation<const Ns extends FlatNamespace | $Tuple<FlatNamespace> | undefined = undefined, const KPrefix extends KeyPrefix<FallbackNs<Ns>> = undefined>(ns?: Ns | undefined, options?: UseTranslationOptions<KPrefix> | undefined): UseTranslationResponse<FallbackNs<Ns>, KPrefix>UseTranslationSelector | UseTranslationLegacy
react-i18next · UseTranslationOptions{ i18n?: any; useSuspense?: boolean | undefined; keyPrefix?: KPrefix | undefined; bindI18n?: string | false | undefined; nsMode?: "fallback" | "default" | undefined; lng?: string | undefined; }{ i18n?: any; useSuspense?: boolean | undefined; keyPrefix?: KPrefix | undefined; bindI18n?: string | false | undefined; bindI18nStore?: string | false | undefined; nsMode?: "fallback" | "default" | undefined; lng?: string | undefined; }

Verwijderde leden van klassen of interfaces

Niets gevonden.

Gewijzigde leden van klassen of interfaces

Niets gevonden.

Nieuw als verouderd gemarkeerd

export@deprecated
react-i18next · TransSelectorProps.shouldUnescapeignored: Trans always decodes HTML entities

Gewijzigde vereisten (engines, peer-afhankelijkheden)

VoorNa
engines.node—>=22
peerDependencies.react>= 16.8.0>= 18.0.0
peerDependencies.i18next>= 26.2.0>= 27.0.0
Nieuwe exports (1)
importexportkind
react-i18nextReactOptionsvariable

Changelog tussen deze versies

Tekst gepubliceerd door de pakketauteurs, ongewijzigd weergegeven.

18.0.0
Released together with i18next 27. The migration guide lists every change with what to do: https://react.i18next.com/latest/migrating-v17-to-v18

### Breaking changes

- requires i18next 27 (peer `>= 27.0.0`) and React 18 or later (peer `>= 18.0.0`). React 16 and 17 apps stay on react-i18next 17: on i18next 27, use react-i18next 17.1.13 or later (it brings the types of the `react` init options), or 18. `useSyncExternalStore` comes from React itself, so `use-sync-external-store` is no longer a dependency.
- `Trans` output no longer depends on `interpolation.escapeValue`: it always decodes HTML entities after parsing, as `IcuTrans` does, in text and in attribute values, both with `react.unescape` (attribute values used the built-in decoder before). With i18next's default `escapeValue: true`, a value `Tom & Jerry` rendered as `Tom &amp; Jerry` and a date `17/12/2025` as `17&#x2F;12&#x2F;2025`; both now render as written, and so do entities in the translation itself (`&amp;`, `&lt;`, `&nbsp;`, ...). Values still render as text, never as markup (since 17.1.10). The `shouldUnescape` prop and `react.transDefaultProps.shouldUnescape` are ignored and warn (`DEPRECATED_OPTION`, in development and with `debug: true`); remove them. Snapshot tests that contain entities inside `Trans` output need an update ([#1903](https://github.com/i18next/react-i18next/issues/1903), [#1893](https://github.com/i18next/react-i18next/issues/1893)).
- `Trans` and `IcuTrans` re-render on language change by themselves: they subscribe to the `react.bindI18n` (default `languageChanged`) and `react.bindI18nStore` events, like `useTranslation`. Before, they only updated when a parent re-rendered ([#1710](https://github.com/i18next/react-i18next/issues/1710)). They still neither load translations nor suspend; with a `t` prop, that `t` still decides the language. `TransWithoutContext` and `IcuTransWithoutContext` stay hook-free.
- the `react` options of an instance stay on that instance. `initReactI18next` copied them into module-wide defaults, so a second instance without `react` options inherited, for example, the first one's `useSuspense: false`. Set them on every instance, or call `setDefaults()` once.
- the `i18n` returned by `useTranslation` (and passed by `withTranslation` and `Translation`) forwards reads and writes to the instance. It was a copy taken when the language changed, so after `await i18n.changeLanguage('de')` the copy still said `en`, and properties set on it never reached the instance. It is still a new object whenever the language changes, for dependency arrays and the React Compiler. Because the old object now reads the current language too, a check like `prevProps.i18n.language !== this.props.i18n.language` (or the language of a `usePrevious(i18n)`) no longer sees a change: compare the objects (`prevProps.i18n !== this.props.i18n`) or keep the previous language yourself.
- `useSSR` and `withSSR` call i18next's `hydrate()` instead of writing `resourceStore.data`,

Geef je AI-agent deze feiten

Vigia is een gratis MCP-server: je coding-agent controleert versies, breaking changes en kwetsbaarheden voordat hij code schrijft. Geen account, geen API-sleutel.

claude mcp add --transport http vigia https://vigia.coredls.cloud/mcp

Toevoegen aan CursorToevoegen aan VS Code★ Ster op GitHub

Elke andere MCP-client
{ "mcpServers": { "vigia": { "url": "https://vigia.coredls.cloud/mcp" } } }

Agent-skill (SKILL.md): vertelt de agent wanneer hij Vigia moet gebruiken · GitHub Action voor pull requests

Veelgestelde vragen

Wat zijn de brekende wijzigingen bij het upgraden van react-i18next van 17 naar 18?

Tussen react-i18next 17.1.13 en 18.0.0 vond Vigia 0 verwijderde exports, 5 gewijzigde signaturen en 0 verwijderde of gewijzigde leden van klassen of interfaces.

Wat is verouderd in react-i18next 18?

1 exports of leden zijn in react-i18next 18.0.0 nieuw als verouderd gemarkeerd.

Voor agents

GET https://vigia.coredls.cloud/v1/packages/npm/react-i18next/upgrade?from=17.1.13&to=18.0.0