mobile theme mode icon
theme mode light icon theme mode dark icon
Random Question สุ่ม
speech play
speech pause
speech stop

ทำความเข้าใจเกี่ยวกับ Invalidators ใน React

Invalidator เป็นอ็อบเจ็กต์ JavaScript ที่อนุญาตให้คุณทำให้สถานะของส่วนประกอบ React เป็นโมฆะ (หรือรีเซ็ต) เมื่อสถานะของส่วนประกอบไม่ถูกต้อง React จะเรนเดอร์ส่วนประกอบอีกครั้งด้วยสถานะที่อัปเดต กล่าวอีกนัยหนึ่ง ตัวทำให้ใช้ไม่ได้คือวิธีที่จะบอก React ว่าสถานะของส่วนประกอบมีการเปลี่ยนแปลงและจำเป็นต้องทำการเรนเดอร์อีกครั้ง ต่อไปนี้คือบางส่วน กรณีการใช้งานทั่วไปสำหรับผู้ทำให้ใช้ไม่ได้:

1 เมื่อข้อมูลเปลี่ยนแปลง: หากข้อมูลที่ส่วนประกอบกำลังแสดงผลเปลี่ยนแปลง คุณสามารถใช้ตัวทำให้ใช้ไม่ได้เพื่อบอกให้ React เรนเดอร์ส่วนประกอบอีกครั้งด้วยข้อมูลที่อัปเดต
2 เมื่อพร็อพเปลี่ยนแปลง: หากพร็อพของส่วนประกอบเปลี่ยนแปลง คุณสามารถใช้ตัวทำให้ไม่ถูกต้องเพื่อบอกให้ React เรนเดอร์ส่วนประกอบอีกครั้งด้วยพร็อพใหม่
3 เมื่อการเปลี่ยนแปลงสถานะไม่ถูกกระตุ้นโดยการเปลี่ยนแปลงพร็อพ: บางครั้ง คุณอาจต้องการเรนเดอร์ส่วนประกอบอีกครั้ง แม้ว่าอุปกรณ์ประกอบฉากจะไม่เปลี่ยนแปลงก็ตาม ตัวอย่างเช่น หากคุณใช้ตัวแปรสถานะเพื่อติดตามจำนวนรายการในรายการ และผู้ใช้เพิ่มหรือลบรายการ คุณสามารถใช้ตัวทำให้ใช้ไม่ได้เพื่อบอกให้ React เรนเดอร์ส่วนประกอบอีกครั้งด้วยสถานะที่อัปเดต
4 เมื่อส่วนประกอบถูกถอนการเชื่อมต่อ: หากส่วนประกอบถูกถอนการเชื่อมต่อ (เช่น ถูกลบออกจาก DOM) คุณสามารถใช้ตัวทำให้ใช้ไม่ได้เพื่อบอกให้ React ล้างทรัพยากรใดๆ ที่ส่วนประกอบนั้นใช้ โดยทั่วไปตัวตรวจสอบความถูกต้องจะถูกนำไปใช้เป็นฟังก์ชันที่ส่งคืนค่าบูลีน ระบุว่าสถานะของส่วนประกอบมีการเปลี่ยนแปลงหรือไม่ นี่คือตัวอย่างวิธีที่คุณอาจใช้ตัวทำให้ใช้ไม่ได้ในส่วนประกอบ React:
```
class Counter ขยาย React.Component {
state = { count: 0 };

invalidator = () => {
return this.state. count !== this.lastCount;
};

handleAdd = () => {
this.lastCount = this.state.count;
this.setState({ count: this.state.count + 1 });
} ;

render() {
return (


Count: {this.state.count}




);
}
}
```
ในตัวอย่างนี้ ฟังก์ชัน `invalidator` จะส่งคืนค่า `true` หากสถานะของส่วนประกอบเปลี่ยนไป และ `false` มิฉะนั้น ฟังก์ชัน `handleAdd` จะอัปเดตสถานะของส่วนประกอบโดยตั้งค่า `lastCount` ให้เป็นจำนวนปัจจุบัน จากนั้นอัปเดตสถานะ `count` ด้วยค่าใหม่ เมื่อส่วนประกอบถูกเรนเดอร์ใหม่ React จะเรียกใช้ฟังก์ชัน `invalidator` เพื่อตรวจสอบว่าสถานะมีการเปลี่ยนแปลงหรือไม่ และหากเป็นเช่นนั้น ก็จะเรนเดอร์ส่วนประกอบนั้นอีกครั้งด้วยสถานะที่อัปเดต

Knowway.org ใช้คุกกี้เพื่อให้บริการที่ดีขึ้นแก่คุณ การใช้ Knowway.org แสดงว่าคุณยอมรับการใช้คุกกี้ของเรา สำหรับข้อมูลโดยละเอียด คุณสามารถอ่านข้อความ นโยบายคุกกี้ ของเรา close-policy