در صورتی که خطا Cannot stringify arbitrary non-POJOs در Nuxt دریافت کردیم که در زمان stringify کردن اشیا بوسیله لایبرری devalue در زمان رندر کردن صفحه بود. احتمالا شی ای داریم که امکان سریالایز کردن آن وجود ندارد و plain object نیست. برای مثال کلاس جاوااسکریپتی.
برای رفع این مشکل باید سریالایزر شخصی سازی شده برای هندل کردن این اشیا درست کنیم که بوسیله تعریف پلاگین در nuxt قابل انجام است.
// example of a custom payload plugin from the Nuxt team
export default definePayloadPlugin(() => {
definePayloadReducer('BlinkingText', data => data === '<original-blink>' && '_')
definePayloadReviver('BlinkingText', (data) => '<revivified-blink>')
})
در کد بالا definePayloadReducer تابع سریالایز کردن دیتای ما و تابع definePayloadReviver کار سریالایز کردن را انجام می دهد. در این مثال اگر در زمان رندر کردن مقدار دیتا برابر با <original-blink> بود آن را با آندراسکور جایگزین می کند و در کلاینت آن را با مقدار <revivified-blink> جایگزین می کند.
رای
0
ارسال نظر
مرتب سازی:
اولین نفری باشید که نظر می دهید!