Flutter: วิธีแก้ปัญหาใช้ built_value แล้วเจอ Deserializing failed due to Error: Bad State No element

Published on

Authored by Pete. Pittawat Taveekitworachai.


built_value Package ขวัญใจใครหลาย ๆ คน นี่เป็นหนึ่งใน Source Gen ที่ได้รับความนิยมมากที่สุด Package หนึ่งของชาว Flutter Developer อย่างไรก็ตามการทำงานกับมันอาจไม่ง่ายนัก และไม่ใช่ทุก Error Message ที่อ่านเข้าใจได้ง่าย

Deserializing failed due to Error: Bad State No element เป็นอีกหนึ่ง Error Message ที่บอกได้ไม่ค่อยชัดเจนนัก และทำให้ผู้เขียนเองเคยงมกับการแก้มาแล้วทั้งวัน! จริงแล้ว Error นี่เกิดขึ้นจากปัญหาเกี่ยวกับ Type ของ Fields ใน Class ครับ

โดย Class ของเราอาจจะมี Field ที่มีประเภทเป็น dynamic อยู่ โดยอาจไม่ได้เป็นการระบุไปโดยตรง แต่อาจระบุไว้เป็นแบบ Implicit เช่น List, Map ครับ ซึ่งเราแก้ไขได้โดยการระบุ  Type ที่ชัดเจนลงไป เช่น List<String>, Map<String, String> หรือหากไม่ต้องการใช้งาน Field นั้น ๆ ก็ลบทิ้งได้ครับ


📚 Hope you enjoy reading! 📚