Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Reload translations whenever namespaces passed to useTranslation() change #878

Merged

Conversation

@nicolasschabram
Copy link

nicolasschabram commented Jun 20, 2019

When dynamically changing the namespaces passed to useTranslation() over time, they are now reloaded and trigger a re-render. This reimplements the behavior first introduced in #523 as it was likely broken in the release of the new hooks-based API.

See #817 (comment) and #520 for context.

@coveralls

This comment has been minimized.

Copy link

coveralls commented Jun 20, 2019

Coverage Status

Coverage remained the same at 91.983% when pulling d4b4ec4 on nicolasschabram:feature/master_reloadNamespacesOnChange into 21ed9bc on i18next:master.

@@ -74,7 +74,7 @@ export function useTranslation(ns, props = {}) {
if (bindI18nStore && i18n)
bindI18nStore.split(' ').forEach(e => i18n.store.off(e, boundReset));
};
}, []); // define props to trigger using effect on rerender (none here)
}, [namespaces.join()]); // re-run effect whenever list of namespaces changes

This comment has been minimized.

Copy link
@nicolasschabram

nicolasschabram Jun 20, 2019

Author

I thought it might be safer not to rely on object identity in case people pass inlined arrays like useTranslation(["x", "y"]) that are recreated on every render. That's why I'm turning the namespaces array into a string first.

This comment has been minimized.

Copy link
@jamuhl

jamuhl Jun 20, 2019

Member

yes...saw that...think that's rather clever

@jamuhl jamuhl merged commit d946ee8 into i18next:master Jun 20, 2019
4 checks passed
4 checks passed
ci/circleci: build Your tests passed on CircleCI!
Details
codeclimate All good!
Details
coverage/coveralls Coverage remained the same at 91.983%
Details
workflow Workflow: workflow
Details
@jamuhl

This comment has been minimized.

Copy link
Member

jamuhl commented Jun 20, 2019

was published in react-i18next@10.11.2

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
3 participants
You can’t perform that action at this time.