Tech TutorBangla Web Documentation
Portfolio
HomeHTMLCSSTailwind CSSJavaScriptTypeScriptReactNext.jsNode.jsExpressSocket.IOExpoWordPressPostgreSQLPrismaPostgresNestJSMongoDBDockerTanStackTanStack TableRTK QueryGitGitHub
  • RTK Query Documentation39টি অধ্যায়
প্রযুক্তি নির্বাচন
HomeHTMLCSSTailwind CSSJavaScriptTypeScriptReactNext.jsNode.jsExpressSocket.IOExpoWordPressPostgreSQLPrismaPostgresNestJSMongoDBDockerTanStackTanStack TableRTK QueryGitGitHub
  • Redux Intro
  • Architecture
  • Redux Toolkit
  • Project Setup
  • Folder Structure
  • configureStore
  • Redux Provider
  • createSlice
  • Reducers & Actions
  • Typed Hooks
  • Selectors
  • Devtools
  • RTK Query
  • createApi
  • API Middleware
  • API Tags
  • Fetch List
  • Fetch Detail
  • Mutation — Create
  • Mutation CRUD
  • Cache Invalidation
  • Cache Lifecycle
  • Polling
  • Query Selectors
  • Optimistic Update
  • Cart Slice Full
  • Cart UI
  • Local vs Server
  • Listener Middleware
  • Error Handling
  • Loading States
  • Serializability
  • SSR Prefetch
  • Complete Flow
  • Complete Project
  • Production
  • Common Mistakes
  • Best Practices
  • Interview Q&A
  1. Docs
  2. RTK Query
  3. Mutation: Create Order
RTK QueryIntermediate

Mutation: Create Order

useCreateOrderMutation — trigger, unwrap ও clearCart — বাংলায়।

6টি অংশবাংলা ভাষায়
src/features/cart/checkout-button.tsxts
ts
"use client";

import { useAppSelector } from "@/hooks/use-app-selector";
import { useCreateOrderMutation } from "@/features/orders/ordersService";
import { clearCart } from "@/features/cart/cartSlice";
import { useAppDispatch } from "@/hooks/use-app-dispatch";

export function CheckoutButton() {
  const dispatch = useAppDispatch();
  const items = useAppSelector((state) => state.cart.items);
  // hook auto-generated for builder.mutation
  const [createOrder, { isLoading, isError, error }] = useCreateOrderMutation();

  async function handleCheckout() {
    // wrap in try/catch — trigger returns Promise
    const result = await createOrder({ items }).unwrap();
    // .unwrap() → success = result, error = throw
    dispatch(clearCart());
  }

  return (
    <Button
      onClick={handleCheckout}
      disabled={isLoading || items.length === 0}
    >
      {isLoading ? "অর্ডার করছি…" : "Checkout"}
    </Button>
  );
}

mutation trigger কী

  • [trigger, result] array-ভিত্তিক — trigger কল করলে request হয়
  • result.isLoading / isError / error / isSuccess / data
  • Second call same arg → dedupe হয়; আলাদা arg → new
  • unwrap() → success-এ value, failure-এ throw — await-able

ম্যানুয়াল validate

empty cart guardts
ts
if (items.length === 0) {
  toast.error("Cart খালি");
  return;
}
unwrap বা onSuccess

দুই পদ্ধতি — await trigger().unwrap() (ফর্ম/async code-এ ভালো) অথবা trigger()-এর result-এ onSuccess/onError callback। এই কোর্সে unwrap-ই প্রাথমিক — কারণ এতে failure-ও আপনার code-এ ফিরে আসে।

শেষ প্যারায় নিজে practice করুন — কোড কপি করে নিজের এডিটরে চালিয়ে দেখুন।
আগেরFetch Detail — useGetProductByIdQueryপরেরMutation: Update ও Delete (Admin)
এই পেজে
Tech Tutor

বাংলায় ওয়েব ডেভেলপমেন্ট ডকুমেন্টেশন শিখুন — ধাপে ধাপে।

Homeসব ডকুমেন্টেশনQuick Startআমার নোটস

© 2026 Tech Tutor. বাংলায় শিখুন, বাংলায় গড়ুন।

mdanamolhasan1998@gmail.com