Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

314
Vistas
ReactJS - Agregar secuencia de comandos (Mollie) a la página React

Estoy tratando de importar un script llamado Mollie (usado para pagos), pero no estoy seguro de cómo hacerlo en React. Normalmente en Javascript harías algo como esto:

 <html> <head> <title>My Checkout</title> </head> <body> <script src="https://js.mollie.com/v1/mollie.js"></script> </body> </html>

He intentado esto (según otras publicaciones de Stackoverflow)

 useEffect(() => { const script = document.createElement("script"); script.src = "https://js.mollie.com/v1/mollie.js"; script.addEventListener("load", () => setScriptLoaded(true)); document.body.appendChild(script); }, []); const mollie = Mollie(); // Mollie is not defined

Pero entonces Mollie no está definida. ¿Alguien puede señalar en la dirección correcta sobre cómo import Mollie en React?

Estoy siguiendo esta guía (pero es para Javascript estándar)

about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

Puede instalar fácilmente este paquete desde npmjs.com , donde puede encontrar la documentación y los ejemplos necesarios para comenzar. Instalación:

npm i @mollie/api-client

about 4 years ago · Juan Pablo Isaza Denunciar

0

el punto aquí es que el efecto se invoca después de que el componente de reacción se monte y se presente al usuario. La siguiente línea en la que intenta llamar a Mollie, de hecho, se ejecuta antes cuando el componente se está construyendo pero aún no se procesa.

Hay varias opciones de lo que puede hacer al respecto:

  1. Importe el script en el archivo index.html como lo hace para la solución estándar que no es React. Debe haber una carpeta "pública" que contenga este archivo en caso de uso de crear-reaccionar-aplicación u otro lugar en caso de configuración de proyecto personalizado. El HTML debe existir en cualquier forma, incluso en caso de que se genere dinámicamente en el lado del servidor. Posteriormente se puede crear una instancia de mollie en el componente o globalmente.
  2. Usa múltiples efectos en el componente React: uno para cargar Mollie y otro para usarlo cuando está cargado:
 // MollieExample.jsx const MollieExample = () => { const [mollie, setMollie] = useState(); useEffect(() => { const script = document.createElement('script'); script.src = 'https://js.mollie.com/v1/mollie.js'; script.addEventListener("load", () => { setMollie(window.Mollie(/* Mollie arguments */); }); document.body.appendChild(script); }, []); useEffect(() => { if (mollie) { console.log('Mollie exists here'); console.log(typeof mollie); } } , [mollie]); return <p>typeof mollie: {typeof mollie}</p>; };
  1. Use la carga dinámica de secuencias de comandos en caso de que sea necesario con una instancia de Mollie compartida globalmente a través de un enlace personalizado:
 // useMollie.js let molliePromise; const useMollie = (effect, deps) => { const [mollie, setMollie] = useState(); const mollieCb = useCallback((mollie) => effect(mollie), deps); useEffect(() => { if (!molliePromise) { molliePromise = new Promise((resolve) => { const script = document.createElement("script"); script.src = "https://js.mollie.com/v1/mollie.js"; script.addEventListener("load", () => { resolve(window.Mollie(/* Mollie arguments */); }); document.body.appendChild(script); }); } molliePromise.then((mollie) => setMollie(mollie)); }, []); useEffect(() => { if (mollie) { mollieCb(mollie); } }, [mollie, mollieCb]); }; // MollieConsumer.jsx const MollieConsumer = () => { useMollie((mollie) => { console.log('Mollie exists here'); console.log(typeof mollie); }, [/* useMollie effect callback dependencies array */]); return ( <p>Mollie consumer</p> ); }; // App.jsx function App() { /* Both consumers use the same instance of Mollie */ return ( <div> <MollieConsumer/> <MollieConsumer/> </div> ); }

Supongo que terminarás usando alguna opción intermedia. Por ejemplo, con la importación de secuencias de comandos en index.html (o cualquier otro tipo de página HTML que tenga que contenga el elemento host de la aplicación React) y el gancho global.

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda