¿Puedo llamar a una variable cuya ruta está en /public/assets/js en mi proyecto de React dentro de useEffect() en las vistas de React?
Por ejemplo, ¿puedo usar jsVal como se muestra a continuación?
useEffect(() => { const existingScript = jsVal.getSum(); ... }La razón por la que tengo curiosidad es porque, cuando la pantalla creada con React se enciende con Chrome, jsVal no es 'jsVal no está definido' en la pestaña Consola de Herramientas para desarrolladores.
Sin embargo, en useEffect, jsVal sale como 'can not find Name', así que dejo una pregunta.
Agregar La ubicación donde se define jsVal es /public/assets/js/test.js.
Si su valor está expuesto de alguna manera a través global o window , entonces sí, ¡puede acceder a él en React!
es decir
// public/assets/file.js window.jsVal = { getSum(a, b) { return a + b; } } // In case of typescript, add an ambient declaration too! declare global { interface Window { jsVal: { getSum(a: number, b: number): number; } } } // React app (make sure file.js is included before React in index.html) const MyComponent = () => { const [val, setVal] = useState(null); useEffect( () => { setVal(window.jsVal.getSum(10, 32)); // 42 }, [window.jsVal, setVal] ); return null; }Supongo que jsVal es un servicio/variable global. Si es así.
Todo de React es javascript. Puedes pensar que React es una variable global.
React.render(<App />, el) Entonces, en general, depende de si jsVal se define antes o después de render . Sin embargo useEffect también es un poco especial. En realidad, se activa en otra tarea/tick de Javascript, similar a setTimeout o una API, por lo que su ejecución se difiere de forma asíncrona.