Quiero obtener una API, exportada desde el archivo del módulo data.js
Recibo este error "err SyntaxError: token inesperado < en JSON en la posición 0"
El siguiente archivo contiene el módulo API
/** * @typedef {object} PropertyType * @property {string} label - The text to display * @property {string} value - The enum value assigned */ /** * Retrieve a list of all available property types. * * @returns {Promise<{ propertyTypes: PropertyType[] }>} */ async function getAvailablePropertyTypes() { await wait(randomInteger(500)); return { propertyTypes: [ { label: 'Semi-detached', value: 'semi-detached' }, { label: 'Detached house', value: 'detached' }, { label: 'Terraced house', value: 'terraced' }, { label: 'Flat', value: 'flat' }, ] }; } export {getAvailablePropertyTypes};El siguiente archivo contiene la API importada app.js
Creo que no estoy recuperando correctamente en esta línea respuesta const = await fetch(getAvailablePropertyTypes.propertyTypes)
¿Cómo obtengo de esta función getAvailablePropertyTypes.propertyTypes?
import {getAvailablePropertyTypes} from './properties' import { useEffect } from 'react' function App() { useEffect( async () => { const response = await fetch(getAvailablePropertyTypes.propertyTypes) const data = await response.json() .then(res => { console.log('res', res) }) .catch(err => { console.log('err', err) }) }, []) return ( <div className="App"> </div> ); }getAvailablePropertyTypes es una función. No tiene una propertyTypes propertyTypes, por lo que no estará undefined para eso.
undefined no es una URL para nada útil, por lo que obtiene una página de error cuando realiza una solicitud de red. La página de error no es JSON, de ahí el mensaje de error.
No hay ninguna URL cerca de este código. No tiene sentido involucrar fetch en absoluto.
fetch es útil para obtener datos de las API que se implementan como servicios web. No lo ayudará con otros tipos de API, incluida esta, que son solo algunas funciones que se ocupan de los datos internos.
Así que volvamos al principio y veamos lo que tienes.
getAvailablePropertyTypes es una función. Así que llámalo.
const ret_value = getAvailablePropertyTypes(); Es async , por lo que devuelve una promesa, así que espérelo.
const data = await ret_value; El valor resuelto de la promesa es un objeto que tiene un valor de tipo de propertyTypes . Así que extrae eso.
const { propertyTypes } = data;Ahora que es una matriz con la que puedes hacer lo que quieras
console.log(propertyTypes);