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. RTK Query Selectors — selectFromResult
RTK QueryAdvanced

RTK Query Selectors — selectFromResult

selectFromResult, transformResponse, selectors-এর derivation — বাংলায়।

6টি অংশবাংলা ভাষায়
SelectFromResult — re-render limittsx
tsx
"use client";

import { useGetOrdersQuery, useGetProductsQuery } from "@/features/orders/ordersService";

export function OrderCountBadge() {
  const { count } = useGetOrdersQuery(undefined, {
    // পুরো data-র বদলে শুধু count বদলানো হলে re-render
    selectFromResult: (result) => ({
      count: result.data?.length ?? 0,
    }),
  });

  return <Badge>{count}টি অর্ডার</Badge>;
}

transformResponse

সার্ভার shape→client shapets
ts
getProducts: builder.query<Product[], void>({
  query: () => "products",
  transformResponse: (raw: APIEnvelope) => {
    // { items: [...], total } → সব Product[]
    return raw.items;
  },
}),

Derived selectors

cache-থেকে cart-সাথে মিলানোts
ts
// একটি selector: cartItem-product details
export const useCartWithDetails = () => {
  const items = useAppSelector(selectCartItems);
  const { data: products } = useGetProductsQuery();

  return items.map((item) => {
    const product = products?.find((p) => p.id === item.productId);
    return { ...item, product };
  });
};
select-এ সংযম

selectFromResult-এ শুধু সত্যিই দরকারি অংশ select করুন — বড় data object select করলে অপ্রয়োজনীয় re-render হয়। যা যা UI-তে পড়ে, শুধু তা-ই select করুন।

শেষ প্যারায় নিজে practice করুন — কোড কপি করে নিজের এডিটরে চালিয়ে দেখুন।
আগেরPolling — Real-time-ish DataপরেরOptimistic Update — onQueryStarted
এই পেজে
Tech Tutor

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

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

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

mdanamolhasan1998@gmail.com