React antd LinguiJS не работает с модальным методом

#reactjs #react-redux #antd #linguijs

#reactjs #react-redux #antd #linguijs

Вопрос:

Я пытался перевести заголовок в antd modal.confirm() , но всегда получаю сообщение об ошибке useLingui hook was used without I18nProvider . На других страницах перевод работает нормально.

Вот мой код:

 async function onLogout() {
    Modal.confirm({
        title: <Trans>Confirm Logout</Trans>,
        icon: <LogoutOutlined />,
        content: <Trans>Are you sure you want to logout?</Trans>,
        async onOk() {
            const logout = await dispatch(logoutUser())
            if (logout === "Success") {
                history.push("/login")
            }
        },
    })
}
 

Комментарии:

1. вы завернули внутри I18nProvider в app.js

2. да, я обернул app.js с I18nProvider и он работает нормально, но когда я использую modal.confirm(), он покажет ошибку

Ответ №1:

я добавляю отдельный I18nProvider для ant общего контекста modal.method

    const comfirmLogoutMessage = (
    <I18nProvider i18n={i18n}>
      <Trans>Confirm Logout</Trans>
    </I18nProvider>
)