سلام جناب قربانی
وقت بخیر
من میخوام یه سایتی که توسط html, css و javascript نوشته شده است را روی قالب ری اکت بالا بیارم. حال بعضی از فایل های جاوا اسکریپت را می خوام بعد از اینکه کامپوننتی mount شد اجرا شود.
این فایل جاوا اسکریپت را بهتر است کجا قرار دهم: پوشه public, src؟ و به چه طریق از آن استفاده کنم؟
من این کد را استفاده کردم ولی متاسفانه جواب نداد:(فایل داخل پوشه public است)
useEffect(()=>{
const script = document.createElement('script');
script.src = "./js/slide.js";
script.async = true;
document.body.appendChild(script);
},[])سایتی که خودتون به عنوان آموزش استفاده کردین، تا روی قالب ری اکت بالا بیارین، فایل جاوا اسکریپتی نداشت، در مورد این سایت که فایل های جاوا اسکریپتی هم داره، میشه یه توضیح مختصر بدین که روش صحیح استفاده از این فایل ها چیه.(داخل فایل های جاوا اسکرپیت رویدادهای onclick, onmouseenter, onmouseleave و ... داریم)
سلام دوست من
بهتری کار استفاده از رویدادهای React هست ، مثلا onclick ایی که در js جدا نوشته شده تبدیل بشه به رویداد React onClick
ممنونم .
راستش من این کار را کردم ولی مثلا در این نمونه کد: ( مربوط به رویداد onMouseLeave برنامه است)
const removeShadow = () => {
let contentDivs = document.querySelectorAll('.accordion-content');
contentDivs.forEach(function(contentDiv){
contentDiv.style.boxShadow = 'none';
})
}
const dropShadow = (event) => {
if (window.innerWidth >= 992) {
let contentDivs = document.querySelectorAll('.accordion-content');
contentDivs.forEach(function(contentDiv){
contentDiv.style.boxShadow = 'none';
})
setTimeout(function(){
event.target.querySelector('.accordion-content').style.boxShadow = '0 0 5px #464646';
}, 400);
}
}به event.target.querySelector ایراد میگیره و میگه null، querySelector است در صورتی که وقتی از خود فایل js استفاده میکنم همچین خطایی ندارم. شما میدونین چرا این اتفاق میفته؟
در کل منظور شما اینکه کلا از فایل js استفاده نکنم و event ها را در قالب ری اکت بنویسم؟ (چون جواب قسمت اول سوالمو نداده بودین می پرسم)
منظورم این هست که در کنار قالب فایلهای js جدا نداشته باشید و همه موارد در کامپوننتها استفاده بشن
مثلا در کد بالا در زمان خاصی باید کاری برای المنتی انجام بشه وگرنه یک کار دیگه صورت بگیره
اینها همه باید درون کامپوننت اون قسمت نوشته بشه
ممنون از وقتی که گذاشتین و به سوالم پاسخ دادین.