تابستون داره تموم میشه ها، فرصت‌ها محدودن کلی آفر جذاب در کمپین تابستون🔥👇
۰ ثانیه
۰ دقیقه
۰ ساعت
۲ سینا-همتی
attributes اسپرید شده
کیوان علی محمدی حل شده توسط کیوان علی محمدی

استاد اینجا که میخواهیم ست اتربیوت کنیم،این اتربیوتس ایی که اسپرید میکنیم( attributes...)،این چیه؟
شما یک اینترفیس تعریف میکنین و تو ست اتربیوت میارین.اما تو UI دیده نمیشه.آن چیزی که دیده میشه کامپوننت اتربیوته.من دقیقا نفهمیدم این اینترفیس اتربیوت ایتم رو برای چی تعریف میکنیم و چرا پراپرتیهاشو تو ست اتربیوت میاریم.در حالیکه اصلا وقتی دگه زده میشه کامپوننت اتربیوته که لود میشه.اگر هم این روش، شیوه آپدیت استیت با قوانین ایمیوتبل است به هر حال وقتی دگمه رو میزنیم خود اتربیوت لود میشه و درست هم هست چون تو مپ در نهایت این کامپوننت اتربیوته که رندر میشه و ربطی با اون پراپرتیها نداره.

const addNewAttribute=(e:ReactMouseEvent)=>{
    e.preventDefault()
    setAttributes((prev)=>{
        return[
            ...attributes,
            {title:'',
            slug:'',
            type:1,
            filterable:true,
            hasprice:false
            }
        ]
    })
}

 

سلام خدمت شما. احتمالا من این رو اشتباه نوشتم چون قصدم این بوده از prev استفاده کنم تا حالت immutable رو حفظ کنیم. نوشتن interface کمک میکنه داده هایی که رد و بدل می‌کنیم بر اساس استانداردهای از قبل تعیین شده انجام بشه و نمیذاره توسعه دهنده بر خلاف اونها کاری انجام بده و علاوه بر اینها در auto complete هم کمک می‌کنه.

بهترین پاسخ
کیوان علی محمدی ۱۲ مهر ۱۳۹۹، ۱۷:۴۱

( attributes...) همان کامپوننت اتربیوت هایی هستند که به شکل داینامیک قرار است در map وارد شوند.(آپدیت ست اتربیوت به روش ایمیوتبل).پراپرتیهایی را هم که برای اینترفیس تعریف کردیم مقادیر درون باکس‌های آن کامپوننت-اتربیوت هستند که بعد از پراپس پذیرکردن کامپوننت-اتربیوت میتوانیم به عنوان پراپس به آن پاس داده و در نهایت آنرا ذخیره کنیم.

سینا-همتی ۱۲ مهر ۱۳۹۹، ۱۷:۴۲