راکت
حل شده

ارور ReferenceError Audio is not defined در ناکست جی اس

17 پاسخ

سلام
توی state به این صورت میخوام از کلاس Audio یک آبجکت بسازم ولی ارور میده

export const state = () => ({
  [AUDIO]: new Audio()
})
Audio is not defined
1kiomars
1kiomars
@kiomars.geytasii
ثبت پرسش جدید

پاسخ‌ها

17
اشکان نظری
اشکان نظری
@ashkannazari248

تخصص: برنامه نویس

بهترین پاسخ

به هیچ وجه من الوجوه

حسام موسوی
حسام موسوی
@hesammousavi

تخصص: طراح و برنامه نویس

سلام این Audio چیه و از کجا اومده ؟

1kiomars
1kiomars
@kiomars.geytasii

شاید پاسخ شما همین‌جا باشد

سهیل حیدری
سهیل حیدری
@hbr

این دستور رو اینطوری بزنید:

[AUDIO]: new Audio()
[AUDIO]: new HTMLAudioElement.Audio()
1kiomars
1kiomars
@kiomars.geytasii
HTMLAudioElement is not defined
1kiomars
1kiomars
@kiomars.geytasii

دوستان راهی هست برای حل این ارور؟

1kiomars
1kiomars
@kiomars.geytasii
حسام موسوی
حسام موسوی
@hesammousavi

تخصص: طراح و برنامه نویس

این کلاس در مرورگر جوابگو هست اگر هم اجرا بشه در نهایت خروجی زیر رو به نمایش در میاره
به دو روش میشه صداش زد

new Audio()
new window.Audio()

در نهایت هم چنین چیزی بر میگردونه

<audio preload="auto"></audio>
1kiomars
1kiomars
@kiomars.geytasii

@hesammousavi
من همین کدها رو دقیقا در vue مینویسم و بدون هیچ مشکلی اجرا میشن احتمالا مشکل از ناکست نظر شما چیه ؟

اشکان نظری
اشکان نظری
@ashkannazari248

تخصص: برنامه نویس

ناکست قسمت سمت سرور این رو نداره. باید شرط بزاری فقط سمت کلاینت اجرا بشه

if(process.client){
...
}
1kiomars
1kiomars
@kiomars.geytasii

@ashkannazari248
این شرط به چه صورت داخل state قرار بدم ؟

اشکان نظری
اشکان نظری
@ashkannazari248

تخصص: برنامه نویس

میتونید مقدار دهی اولیه نکنید و توی میدلور یا جای دیگه مقدار دهی کنید. برای مقدار دهی اولیه میتونید این کار رو بکنید

export default ()=>({
audio:process.client?new Audio():null
});

یعنی اگه سمت کلاینت بود مقدار بده و اگه نه نال بزار. میتونید نتیجه رو مساوی با یه ارو فانکشن بزارید که یه مقدار رو ریترن میکنه

1kiomars
1kiomars
@kiomars.geytasii

پروژه به صورت universal با این شرط حتما برابر null قرار میگیره

1kiomars
1kiomars
@kiomars.geytasii

@hesammousavi
@ashkannazari248
نمیخواهم audio به صورت نال باشه ممنون میشم راهنمایی کنید

1kiomars
1kiomars
@kiomars.geytasii

از onNuxtReady میشه استفاده کرد؟

اشکان نظری
اشکان نظری
@ashkannazari248

تخصص: برنامه نویس

سمت سرور اصلاً این وجود نداره. وقتی چیزی وجود نداره شما اجازه استفاده ندارید.
توضیح در سایت ناکست :
https://nuxtjs.org/faq/window-document-undefined/

1kiomars
1kiomars
@kiomars.geytasii

@ashkannazari248
منم میدونم وجود نداره راهی نداره بشه استفاده کرد؟

برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام