ค้นหาเว็บไซต์

reactjs - TypeScript ข้อผิดพลาด: ประเภท '() => boolean' ไม่สามารถกำหนดค่าให้กับประเภท 'boolean'


หากอาร์เรย์ของ user_list.length == 0 ปุ่ม "ล้างผู้ใช้" ควรถูกปิดการใช้งาน เมื่อฉันเรียกฟังก์ชัน this.disabledButton มันจะเกิดข้อผิดพลาดบอกว่า

ประเภท '() => boolean' ไม่สามารถกำหนดค่าให้กับประเภท 'boolean' ได้

ด้านล่างนี้คือตรรกะของฉัน

<section>
     <Button
        id='clear-user'
        disabled={this.disabledButton}
        onClick={this.onClearAllUserButton}>
        {'Clear User List'}
     </Button>
</section>

ฟังก์ชันที่กำหนด:

 private disabledButton= (): boolean => {
    if (this.props.user_list.length == 0) {
      return true
    }
    return false
  }

การเรียกของฉันผิดหรือ?

คำตอบ #1

คุณกำลังส่งฟังก์ชันที่ส่งค่ากลับเป็นบูลีน (ประเภท () => boolean) ไปยังคุณสมบัติที่คาดหวังค่าบูลีน (ประเภท boolean) คุณเพียงแค่ต้องเรียกใช้ฟังก์ชันของคุณจริงๆ

disabled={this.disabledButton()}

ข้อความแสดงข้อผิดพลาดนี้บอกคุณทุกอย่าง:

"Type '() => boolean' is not assignable to type 'boolean'"

() => boolean คือฟังก์ชันที่คุณพยายามจะกำหนดค่า และ boolean คือประเภทที่คาดหวัง มันขึ้นอยู่กับคุณที่จะสังเกตว่าทั้งสองประเภทนี้คืออะไรและหาวิธีทำให้พวกมันตรงกัน

บทความที่เกี่ยวข้อง