⊗jsrxPmSDGRS 43 of 57 menu

การส่งข้อมูลจากเซิร์ฟเวอร์ผ่าน GET request ใน Redux

ดังนั้นเรามีฐานข้อมูลพร้อมข้อมูลแล้ว สิ่งแรกที่ เราจะทำเมื่อเริ่มต้นแอปพลิเคชัน Redux ของเรา - คือการรับข้อมูลผลิตภัณฑ์จากเซิร์ฟเวอร์ เพื่อทำสิ่งนี้ เราจำเป็นต้องส่ง GET request จากแอปพลิเคชันของเรา มาจัดการมันที่ฝั่งเซิร์ฟเวอร์กัน

เปิดแอปพลิเคชันผลิตภัณฑ์ของเรา และในนั้นเปิดไฟล์ server.js เพื่อที่จะ ทำงานกับ HTTP requests เราต้อง นำเข้าเครื่องมือหลายอย่าง จาก msw มาไว้ในไฟล์ มาทำกัน:

import { http, HttpResponse, delay } from 'msw'

และก็ปรับให้ใกล้เคียงความเป็นจริงทันที นั่นคือความล่าช้าที่อาจเกิดขึ้นในเครือข่าย ให้ ค่าความล่าช้าที่เราสร้างขึ้นนี้ เป็น 2 วินาที เพื่อให้เราเห็นว่า ข้อมูลถูกโหลดอย่างไร เขียนมันหลังจาก const PRODS_PER_SELLER = 2:

const ARTIFICIAL_DELAY_MS = 2000

และตอนนี้ ท้ายไฟล์ ก่อนส่งออก worker ให้สร้างอาร์เรย์สำหรับ API handler ของ requests:

export const handlers = []

จากนั้นในวงเล็บเหลี่ยม เขียน handler แรกสำหรับการดักจับ GET request ผลิตภัณฑ์:

export const handlers = [http.get()]

พารามิเตอร์แรกสำหรับ http.get เราจะส่ง ที่อยู่ปลอมมา เช่น '/fakeServer/products' และพารามิเตอร์ที่สองเป็น asynchronous callback:

export const handlers = [http.get('/fakeServer/products', async () => {})]

ตอนนี้มาเขียนโค้ดสำหรับ callback นี้ ด้วย มันเราจะดึงผลิตภัณฑ์ทั้งหมดออกจากฐานข้อมูล ที่นี่เรายังใช้ฟังก์ชัน serializeProduct ซึ่งเราเขียนโค้ด ไว้ในบทเรียนที่แล้ว มาส่งผ่าน มันเข้าไปใน map จากนั้นสร้างความล่าช้า (ให้รู้สึกว่า เครือข่ายช้า) และคืนค่าใน response เป็นออบเจ็กต์ พร้อมข้อมูลผลิตภัณฑ์ในรูปแบบ JSON:

export const handlers = [ http.get('/fakeServer/products', async () => { const products = db.product.getAll().map(serializeProduct) await delay(ARTIFICIAL_DELAY_MS) return HttpResponse.json(products) }), ]

และสุดท้าย เราเขียน handler แรก สำหรับ worker ของเราแล้ว มาให้ worker นี้ อาร์เรย์ handlers กัน โดยแก้ไขบรรทัดสุดท้าย ของโค้ดในไฟล์เป็น:

export const worker = setupWorker(...handlers)

เปิดแอปพลิเคชันนักเรียนของคุณ และในนั้นเปิดไฟล์ server.js นำเข้า เครื่องมือที่ระบุจาก msw มาที่ไฟล์ หลังจากศึกษาบทเรียนนี้แล้ว ให้สร้าง อาร์เรย์ว่างของ handler สำหรับ การดักจับ requests เขียนโค้ดในนั้น สำหรับ handler ของ GET request นักเรียน ให้เส้นทางของคุณเป็น '/fakeServer/students'

ท้ายไฟล์ อย่าลืมส่งผ่าน อาร์เรย์ของ handler handlers ให้กับ worker

ไทย
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣTürkmenTürkçeЎзбекOʻzbekTiếng Việt
เราใช้คุกกี้สำหรับการทำงานของเว็บไซต์ การวิเคราะห์ และการปรับเนื้อหาให้เหมาะสมส่วนบุคคล การประมวลผลข้อมูลเกิดขึ้นตาม นโยบายความเป็นส่วนตัว.
ยอมรับทั้งหมด ปรับแต่ง ปฏิเสธ