Estoy tratando de hacer que algo funcione con mi aplicación vue
Creé el archivo constants.js en el que solo declaro algunas de las URL que planeo reciclar en lugar de reescribirlas cada vez, pero algunas de ellas requieren ID de cosas
#Example of constant definined in constants.js export const useVariables = `https://myapiserver.com/iNeedVar1Here/${var1}/iNeedVar2here/${var2}`Y ahora quiero usar esta constante en mi aplicación vue y pasar las variables donde las necesito, antes de enviar la solicitud real
getItem() { let var2 = this.formValues.item2; let var1 = this.formValues.item1; if (item != null) { axios.get(useVariables) .then((res) => { console.log(res.data) }) .catch(err => console.log(err)); } else { alert('Select an item before preceding') }Su constante es estática, no es como una propiedad computed ni nada, es solo una cadena simple, por lo que no funcionará. En su lugar, puede crear una función que creará y devolverá la URL de esta manera:
export const useVariables = (var1, var2) => `https://myapiserver.com/iNeedVar1Here/${var1}/iNeedVar2here/${var2}`Y luego puedes construir la constante así:
getItem() { let var2 = this.formValues.item2; let var1 = this.formValues.item1; if (item != null) { axios.get(useVariables(var1, var2)) .then((res) => { console.log(res.data) }) .catch(err => console.log(err)); } else { alert('Select an item before preceding') } }Según su implementación actual, obtendrá el siguiente error :
var1 se usó antes de que se declarara, lo cual es ilegal para las variables const
var2 se usó antes de que se declarara, lo cual es ilegal para las variables const
Debe pasar estas variables a un método y luego devolver la cadena concatenada. Puedes darle una oportunidad a esto :
En algún otro archivo de utilidad :
export function getAPIUrl(var1, var2) { return `https://myapiserver.com/iNeedVar1Here/${var1}/iNeedVar2here/${var2}` }En componente :
import * as ApiUtil from '@/util/ApiUtil axios.get(ApiUtil.getAPIUrl(var1, var2)) .then((res) => { console.log(res.data) }) .catch(err => console.log(err));