ما می توانیم Sentry را با یک ساخت تولید آزمایش کنیم با وارد کردن:
yarn build
و از پوشه build وارد کنید:
npx http-server -c-1
مشکلی که بلافاصله با آن مواجه می شویم این است که رکوردهای خطای Sentry به شماره خطوط در دسته کوچک شده اشاره دارد. خیلی مفید نیست
سرویس Sentry این را با کشیدن نقشه های منبع برای بسته کاهش یافته پس از دریافت خطا توضیح می دهد. در این مورد ما از لوکال هاست (که توسط سرویس Sentry قابل دسترسی نیست) اجرا میشویم.
راه حل ها (نقشه های منبع)
راه حل این مشکل اجرای برنامه از یک وب سرور عمومی است. یک دکمه پاسخ ساده برای استفاده از سرویس GitHub Pages (رایگان). مراحل استفاده معمولاً به شرح زیر است:
محتویات پوشه را کپی کنید ساختن به پوشه اسناد در دایرکتوری ریشه مخزن.
روشن کن صفحات GitHub در مخزن (از GitHub) برای استفاده از پوشه docs در استاد شاخه ها
تغییرات را به GitHub فشار دهید
یادداشت: بعد از اینکه فهمیدم از چه چیزی باید استفاده کنم ایجاد-ایجاد-برنامه عملکرد صفحه اصلی برای راه اندازی برنامه. به اضافه کردن موارد زیر به package.json رسید:
به همین ترتیب، بیایید از طریق کلیک دکمه عبور کنیم خطا.
با خطایی که به شکل زیر ظاهر می شود:
مدیریت بهتر خطاهای حساب نشده (رندر)
معرفی محدودیت های خطا
یک خطای جاوا اسکریپت در بخشی از رابط کاربری نباید کل برنامه را خراب کند. برای حل این مشکل برای کاربران React، React 16 مفهوم جدیدی به نام "Error Bounds" را معرفی می کند.
مرزهای خطا، مؤلفههای React هستند که خطاهای جاوا اسکریپت را در هر جایی از درخت مؤلفه فرزند خود میگیرند، آن خطاها را ثبت میکنند و به جای درخت مؤلفهای که خراب شده، یک رابط کاربری بازگشتی ارائه میکنند. مرزهای خطا خطاها را در حین رندر کردن، در روشهای چرخه حیات، و در سازندههای کل درخت زیر آنها میگیرند.
...
رفتار جدید برای خطاهای کشف نشده
این تغییر قابل توجه است. از React 16، خطاهایی که توسط هیچ مرز خطایی شناسایی نشدهاند، منجر به حذف کل درخت جزء React میشوند.
یک توضیح مهم که مدتی طول کشید تا متوجه این موضوع شوم این است که رفتار فوق فقط با خطاهای پرتاب شده در روش رندر (یا به احتمال زیاد در هر یک از روش های چرخه حیات) کار می کند.. به عنوان مثال، استفاده از مرزهای خطا هیچ فایده ای برای دکمه ما ندارد خطا; این خطا در کنترل کننده کلیک بود.
بیایید یک مثال خطای رندر ایجاد کنیم و سپس از کران خطا استفاده کنیم تا خطا را با ظرافت بیشتری مدیریت کنیم.