تابستون داره تموم میشه ها، فرصت‌ها محدودن کلی آفر جذاب در کمپین تابستون🔥👇
۰ ثانیه
۰ دقیقه
۰ ساعت
۱ علیرضا بابایی
طریقه ارتباط میدلور و تابع هندل API
جامعه ری اکت ایجاد شده در ۰۴ آذر ۱۴۰۰
<p>سلام</p><p>طریقه ارتباط این کد</p><pre class=\"ql-syntax\" spellcheck=\"false\"> <span class=\"hljs-keyword\">export</span> <span class=\"hljs-keyword\">const</span> <span class=\"hljs-title function_\">fetchTodos</span> = (<span class=\"hljs-params\">dispatch, getState</span>) => {     <span class=\"hljs-title function_\">dispatch</span>(<span class=\"hljs-title function_\">todosLoadingStarted</span>())     client.<span class=\"hljs-title function_\">get</span>(<span class=\"hljs-string\">\'todos\'</span>).<span class=\"hljs-title function_\">then</span>(<span class=\"hljs-function\"><span class=\"hljs-params\">todos</span> =></span> {         <span class=\"hljs-title function_\">dispatch</span>(<span class=\"hljs-title function_\">todosLoadedSuccess</span>(todos))     }).<span class=\"hljs-title function_\">catch</span>(<span class=\"hljs-function\"><span class=\"hljs-params\">error</span> =></span> <span class=\"hljs-title function_\">todosLoadedFailes</span>()) } </pre><p>و کد</p><pre class=\"ql-syntax\" spellcheck=\"false\"> <span class=\"hljs-keyword\">const</span> <span class=\"hljs-title function_\">asyncFunctionMiddleware</span> = storeApi => <span class=\"hljs-function\"><span class=\"hljs-params\">next</span> =></span> <span class=\"hljs-function\"><span class=\"hljs-params\">action</span> =></span> {     <span class=\"hljs-keyword\">if</span> (<span class=\"hljs-keyword\">typeof</span> action === <span class=\"hljs-string\">\'function\'</span>) {         <span class=\"hljs-keyword\">return</span> <span class=\"hljs-title function_\">action</span>(storeApi.<span class=\"hljs-property\">dispatch</span>, storeApi.<span class=\"hljs-property\">getState</span>)     }     <span class=\"hljs-keyword\">return</span> <span class=\"hljs-title function_\">next</span>(action) } </pre><p>که کد دوم میتونه کد اول رو هندل کنه بالاخره این میدلور رو نوشتیم که درخواست‌های API رو مدیریت کنه ولی هندل کردن تابع اول رو نفهمیدم چطور انجام میده</p>

سلام

اگر به تابع asyncFunctionMiddleware دقت بکنی اخرین تابع یک ورودی به اسم action داره

زمانی که یک dispatch انجام میشه شا تابع fetchTodos رو به عنوان ورودی dispatch پاس میدی که این تابع به عنوان action میرسه به middleware

در داخل middleware هم چک میشه اگر که action یک تابع باشه اون رو فراخوانی میکنه که همین مورد انجام شده و اون تابع فراخوانی شده


اگر ابهام شما روی بخش دیگه هست لطفا اعلام بکنید که بیشتر توضیح بدم

مجتبی سوری ۰۵ آذر ۱۴۰۰، ۱۰:۰۹