‫۳ سال و ۱۰ ماه قبل، شنبه ۲۶ مهر ۱۳۹۹، ساعت ۰۰:۳۷
یکبار متن را مطالعه کنید؛ قسمت «استفاده از مقدار قبلی state توسط useState ».
« ... اعمال این متد نیز ممکن است در صف قرار گیرد. یعنی اگر پس از فراخوانی this.setState، سعی در خواندن state به روز شده را داشته باشیم، ممکن است مقدار اشتباهی را دریافت کنیم ...»
اگر می‌خواهید به این زمان دقیق به روز رسانی در همانجا دسترسی پیدا کنید باید از callback آن به صورت زیر استفاده کنید (چون فراخوانی تنظیم state یک عمل غیرهمزمان است، جهت اعلام نیاز به به‌روز رسانی UI و بلافاصله پس از فراخوانی آن (این اعلام درخواست)، کدهای پس از آن اجرا می‌شوند):
this.setState({ name: "myname" }, () => {                              
        //callback
        // this function will be executed after the state change occurs
        console.log(this.state.name) // myname
      });
معادل این قطعه کد با هوک‌ها به صورت زیر است:
useEffect(() => console.log("re-render because x changed:", x), [x]);
//[x] is a dependency array, useEffect will run only when x changes.
نیاز به یک useEffect هست که به تغییرات x واکنش نشان دهد. callback آن پس از به روز رسانی x فراخوانی می‌شود.
  • IdentityServer نگارش 4، آخرین نگارش سورس باز و رایگان آن است و تا زمان پشتیبانی NET Core 3.1. که سال 2022 است، پشتیبانی خواهد شد.
  • نگارش بعدی آن که Duende IdentityServer نام دارد، سورس باز است، اما رایگان نیست؛ چیزی شبیه به مجوز iTextSharp. برای کارهای تجاری باید مجوز آن خریده شود و برای کارهای کاملا سورس باز، رایگان است.
‫۳ سال و ۱۱ ماه قبل، چهارشنبه ۹ مهر ۱۳۹۹، ساعت ۰۵:۴۲
- آیا برای رندر یک partial view حتما باید return PartialView نوشت؟ خیر. همان return View هم در اینجا کار می‌کند.
- اگر اصرار به نوشتن return PartialView بود، یک سطر PartialViewResult زیر را اضافه کنید:
namespace EncryptedModelBinder.Utils
{
    public class EncryptedFieldResultFilter : ResultFilterAttribute
    {
        // ...

        public override void OnResultExecuting(ResultExecutingContext context)
        {
            var model = context.Result switch
            {
                PageResult pageResult => pageResult.Model, // For Razor pages
                ViewResult viewResult => viewResult.Model, // For MVC Views
                PartialViewResult partialViewResult => partialViewResult.Model, // For `return PartialView`
                ObjectResult objectResult => objectResult.Value, // For Web API results
                _ => null
            };