2016-01-29 13 views
13

Non sono sicuro che sia stato richiesto prima o che qualcuno abbia riscontrato lo stesso problema su reactjs. Quindi lo scenario è come questo, ho un file index.html che include alcuni javascript. Ora sul mio componente di reazione, ho una condizione che renderà solo se la condizione è vera. Ciò significa che inizialmente quando la mia pagina è stata caricata, il componente non è ancora stato reso. Quando si attiva un pulsante, è qui che viene eseguito il rendering di quel componente. Quel componente figlio deve chiamare un metodo javascript che è stato incluso nel mio index.html. Come dovrei farlo?Chiama la funzione Javascript esterna dai componenti che reagiscono

Qualsiasi aiuto è molto apprezzato.

risposta

19

In index.html

<script type="text/javascript"> 
    function test(){ 
    alert('Function from index.html'); 
    } 
</script> 

nel componente

componentWillMount() { 
    window.test(); 
} 
4

Quindi, o si definisce il metodo su portata globale (aka finestra). E quindi puoi usarlo da qualsiasi metodo, reagendo o meno.

Oppure è possibile passare al paradigma basato su modulo e utilizzare require/import per ottenere il modulo e utilizzare la funzione.

Per i progetti più grandi quest'ultimo è migliore in quanto è scalabile, mentre se hai bisogno di una demo o di un POC puoi sicuramente collegarli a uno scope globale e funzionerà.

Ulteriori informazioni sui moduli sono a: http://exploringjs.com/es6/ch_modules.html

Problemi correlati