Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

357
Views
El código funciona al leer datos del archivo pero no de la API

Estaba leyendo el valor de la translation del archivo almacenado en la carpeta pública de la aplicación de reacción. archivo fueron almacenados en ingrese la descripción de la imagen aquí

pero dado que nuestros data se pueden cambiar en cualquier momento, estamos almacenando datos en la base de datos. en el momento de la carga, después de detectar el idioma de los datos del navegador de ese idioma, se llamará desde la API y se usará directamente. por lo que el siguiente código de archivo funciona perfectamente.

 import i18next from 'i18next'; const LanguageDetector = require("i18next-browser-languagedetector"); const initReactI18next = require("react-i18next"); import { TRANSLATIONS_EN } from "../public/locales/en/en.js"; import { TRANSLATIONS_IT } from "../public/locales/it/it.js"; i18next .use(LanguageDetector) .use(initReactI18next) .init({ resources: { en:TRANSLATIONS_EN, it:TRANSLATIONS_IT, }, fallbackLng: 'fr' }); i18next.changeLanguage(navigator.language); export default i18next;

ahora, en lugar de esto, estoy usando el siguiente código en el que llamo a la API para leer los data y se asignará directamente a la variable . no escribiremos datos en el archivo en el código a continuación en lugar de files estáticos que he llamado API. si imprimo la salida de la API o el archivo, son exactamente iguales. pero no puedo entender por qué esto no funciona. ¿Puede ser asynchronous el motivo?

 import i18next from 'i18next'; import React from 'react'; import TransFile from './TransFile.js'; import apiDelegate from '../src/components/Utils/Common/api.js'; const LanguageDetector = require('i18next-browser-languagedetector'); const initReactI18next = require('react-i18next'); import { TRANSLATIONS_EN } from '../public/locales/en/en.js'; //just for verification import makeGetRequest from './abc.js'; apiDelegate.getTranslations().then((result) => { output = JSON.stringify(result); const tr_en = 'translation: ' +JSON.parse(output) ; alert(tr_en); //this and below alert produce same result. alert(TRANSLATIONS_EN)); i18next .use(LanguageDetector) .use(initReactI18next) .init({ resources: { en: tr_en, //if I write TRANSLATIONS_EN here it works }, fallbackLng: 'fr', }); i18next.changeLanguage(navigator.language); }); export default i18next;

No puedo entender el problema extraño. ¿Hay alguna forma mejor de manejar? Encontré i18n-http-backend api pero a partir de esto no sé cómo llamar a restAPI . Por favor ayuda.

about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

El primero es manejar then encabezado de la respuesta... Necesitas un segundo then procesar el cuerpo de la respuesta. Probar:

 apiDelegate.getTranslations() .then(response => response.json()) .then(result => { // ... Your code })
about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!