2016-01-29 13 views
13

Nie jestem pewien, czy ktoś zadał to pytanie wcześniej, czy też spotkał się z tym samym problemem w witrynie reactjs. Tak wygląda scenariusz, mam plik index.html zawierający trochę javascript. Teraz na moim komponencie reagującym mam warunek, który będzie renderowany tylko wtedy, gdy warunek jest prawdziwy. Oznacza to, że początkowo po załadowaniu mojej strony komponent nie został jeszcze wyrenderowany. Kiedy przełączam przycisk, jest to miejsce, w którym komponent jest renderowany. Ten komponent potomny musi wywołać metodę javascript, która została uwzględniona w pliku index.html. Jak mam to zrobić?Zadzwoń do zewnętrznej funkcji JavaScript z reakcji komponentów

Każda pomoc jest bardzo doceniana.

Odpowiedz

19

W index.html

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

W komponentu

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

Więc albo zdefiniować metody w zakresie globalnym (aka okna). A następnie można go używać z dowolnej metody, React lub nie.

Można też przełączyć się na paradygmat oparty na module i użyć polecenia wymagaj/import, aby uzyskać moduł i skorzystać z funkcji.

W przypadku większych projektów ta ostatnia jest lepsza, ponieważ jest skalowana, natomiast jeśli potrzebujesz wersji demonstracyjnej lub POC, możesz z pewnością podłączyć wszystkie do globalnego zasięgu i będzie działać.

Więcej informacji o modułach znajduje się pod adresem: http://exploringjs.com/es6/ch_modules.html

Powiązane problemy