3
在我目前的React + React-router設置中,我的組件導入了一些jQuery的東西(owl.carousel和magnific popup)
我想保持代碼乾淨,所以外部特性存儲在單獨的文件中。下面的代碼僅在頁面使用直接URL加載時才起作用,並且在導航應用時不起作用。因此,$(document).ready
中的所有內容僅通過直接鏈接觸發。
import '../jQuery/carousel.js';
$(document).ready(function(){
$('.owl-carousel').owlCarousel({
});
$('.popup-gallery').magnificPopup({
});
});
我該如何解決這個問題?我試圖用componentWillMount和包裹。就緒(),還有一些自定義的功能,但我不能訪問updateJs()
在導入文件
class MyComponent extends Component {
componentWillMount() {
updateJs();
}
}
我很感謝你的回答,它當然是有效的。但是這樣的代碼看起來很難閱讀。在實際項目中,我想分開100行jQuery和20行jsx。你知道我怎樣才能從.js中導出函數,將組件導入並引用一個函數,如callScripts()或refresh()? –
一種方法是將'jQuery'函數分配給'window'對象以在'react'組件中訪問。還有一件事情是嘗試''反應'庫作爲你的'jQuery'庫的替代品。 –