• 1398/12/16

اجرا نشدن برخی توابع جاوا در routing :

سلام به همگی. خسته نباشید.

من از routing استفاده کردم با <NavLink>  بین صفحات حرکت میکنم. اما خیلی از بخش هایی که از جی کوئری استفاده میکنن درست کار نمیکنن ولی وقتی توی صفحه refresh  میکنم درست میشه. فکر کنم جاهایی که مثلاً document.ready استفاده شده کار نمیکنه. چطور باید این مشکل رو حل کنم؟

ممنون

  • 1398/12/17
  • ساعت 18:43

سلام دوست من

در React نیازی به استفاده از document.ready نیست چون میتونه از چرخه حیات ها استفاده کنید componentDidMount

و برای دسترسی به مواردی که وابسته به جی کوئری هستن میتونید از این مثال بهره ببرید

import $ from 'jquery'; //make sure you have jquery as dependency in package.json

class MyComponent extends Component {
  componentDidMount() {
    let owlCarousel = $.fn.owlCarousel; //accessing jquery function
    let magnificPopup = $.fn.magnificPopup; //accessing jquery function
    $('.owl-carousel').owlCarousel({ //call directly on mount
    });

    $('.popup-gallery').magnificPopup({
    });
  }
}

 


  • 1398/12/17
  • ساعت 20:07

منظورم این نبود که من از document.ready استفاده کردم. توی همه قالب ها معمولاً مواردی مثل اسلایدر وجود داره که داره با jquery کار میکنه. اونها همشون از کار میوفته توی routing. من رفرنس ها رو توی index.html دادم. فکر میکنه وقتی صفحه عوض میشه دیگه اونها رو لود نمیکنه


  • 1398/12/18
  • ساعت 15:16

در کل جی کوئری و ری اکت رابطه خوبی باهم ندارن و دلیل اینکه اجرا نمیشه اینه که ری اکت تنها یکبار اجراش میکنه چون یکبار به مرورگر کاربر فرستاده شده.

بهترین روش این هست که بجای رویدادهای جی کوئری از رویدادهای خود ری اکت استفاده بشه

اگر واقعا نیاز هست میتونید به BrowserRouter این پیکربندی رو بدین 

forceReferesh={true}

  • 1398/12/21
  • ساعت 09:16

سلام. من پروژم رو آپلود کردم. آدرسش اینه:

https://www.mportfolio.ir/

اگر وقت کردید یه نگاه بهش بندازید که ببینید منظورم چی هست. و همچنین اینکه چرا توی Wappalyzer  ننوشته من از react استفاده کردم؟