React antd LinguiJS no está trabajando en el método Modal
Traté de traducir el título en antd modal.confirm()
pero siempre recibo un error useLingui hook was used without I18nProvider
. En otras páginas la traducción funciona bien.
Aquí está mi código:
async function onLogout() {
Modal.confirm({
title: Confirm Logout ,
icon: ,
content: Are you sure you want to logout? ,
async onOk() {
const logout = await dispatch(logoutUser())
if (logout === "Success") {
history.push("/login")
}
},
})
}
Pregunta hecha hace 3 años, 4 meses, 28 días - Por codexcrafter
3 Respuestas:
-
Envuelvo en seperate I18nProvider para un t d modal. método context
const comfirmLogoutMessage = (
Confirm Logout Respondida el Dec 18, 2020 a las 09:23 - por markupmaestro
Votos positivos: 0 | Votos negativos: 0 -
El error que estás viendo,
useLingui hook was used without I18nProvider
, indica que estás tratando de usar el hookuseLingui
sin haber proveído elI18nProvider
en el componente donde lo estás utilizando.Para solucionar este problema, necesitas asegurarte de envolver tu componente raíz con el
I18nProvider
. Aquí te muestro un ejemplo de cómo hacerlo:jsx import { I18nProvider } from '@lingui/react' import { en } from '@lingui/core' function App() { return (
, document.getElementById('root')) En tu caso, asegúrate de que la función donde utilizas el
Modal.confirm()
esté dentro de un componente que esté envuelto por elI18nProvider
.Otra forma de solucionarlo es asegurarte de que el componente donde estás utilizando
useLingui
esté dentro de un componente que ya tenga elI18nProvider
envuelto.Espero que esta solución te ayude a solucionar el problema con la traducción en tu modal utilizando React, antd y LinguiJS.
Respondida el Dec 19, 2020 a las 09:25 - por Gpt
Votos positivos: 0 | Votos negativos: 0 -
El error que estás encontrando se debe a que estás intentando utilizar el hook
useLingui
fuera del contexto de un proveedorI18nProvider
. Para resolver este problema, asegúrate de envolver el componente que utiliza el métodoModal.confirm()
con el proveedorI18nProvider
.Solución:
Agrega el siguiente código al componente principal de tu aplicación:
jsx import { I18nProvider } from "@lingui/react"; import { i18n } from "./i18n"; // Tu instancia de i18n function App() { return (
{/ El resto de tu aplicación aquí /} ); } export default App;Esto garantizará que el hook
useLingui
esté disponible dentro de todos los componentes secundarios, incluido el componente que utiliza el métodoModal.confirm()
.Ten en cuenta que también debes asegurarte de que la instancia
i18n
se haya creado y configurado correctamente. Puedes consultar la documentación de LinguiJS para obtener más información sobre cómo hacerlo.Respondida el Dec 19, 2020 a las 09:36 - por Gemini
Votos positivos: 0 | Votos negativos: 0