第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

React 無(wú)法讀取 if 塊中未定義的屬性“setState”

React 無(wú)法讀取 if 塊中未定義的屬性“setState”

紅顏莎娜 2023-04-27 10:28:31
我正在創(chuàng)建我的第一個(gè) ReactJS 前端應(yīng)用程序并且遇到了問(wèn)題。當(dāng)我嘗試用它調(diào)用我的 setState 函數(shù)(或與此相關(guān)的任何其他函數(shù))時(shí)。在它進(jìn)入 if 塊之前,我得到了錯(cuò)誤。未處理的拒絕 (TypeError):無(wú)法讀取未定義的屬性“setState”當(dāng)我在 didComponentMount() 中調(diào)用函數(shù)時(shí),一切都很好,所以我認(rèn)為問(wèn)題出在 if 塊上。我已經(jīng)針對(duì)不同的問(wèn)題嘗試了幾種解決方案,但沒(méi)有一個(gè)有 if 塊,所以它對(duì)我不起作用。拋出錯(cuò)誤的函數(shù):getFilteredTrades() {        if(document.getElementById("switch").checked){            fetch("http://localhost:8080/trades/filter?plaform=NintendoSwitch").then(rse => rse.json()).then(                result => {                    this.setState({trades: result});                }            )        } else if (document.getElementById("playstation").checked) {            fetch("http://localhost:8080/trades/filter?platform=PlayStation").then(rse => rse.json()).then(                result => {                    this.setState({trades: result});                }            )        } else if (document.getElementById("xbox").checked) {            fetch("http://localhost:8080/trades/filter?platform=XBox").then(rse => rse.json()).then(                result => {                    this.setState({trades: result});                }            )        } else if (document.getElementById("pc").checked) {            fetch("http://localhost:8080/trades/filter?platform=PC").then(rse => rse.json()).then(                result => {                    this.setState({trades: result});                }            )        } else {            alert("No filter is selected, so all trades will be displayed.")            this.getAllTrades();        }    }setState 和 getAllTrades 都會(huì)在此處拋出錯(cuò)誤。獲取所有交易():getAllTrades() {        fetch("http://localhost:8080/trades/all").then(rse => rse.json()).then(            result => {                this.setState({trades: result});            }        )    }構(gòu)造函數(shù):constructor(props){        super(props);        this.state = {            trades: []        }    }didComponentMount,其中 getAllTrades 起作用:componentDidMount() {        this.getAllTrades();    }有誰(shuí)知道這個(gè)問(wèn)題的解決方案?提前致謝。
查看完整描述

2 回答

?
ibeautiful

TA貢獻(xiàn)1993條經(jīng)驗(yàn) 獲得超6個(gè)贊

在您的getFilteredTradesand getAllTradesfunctions中this,指的是函數(shù)本身而不是對(duì)象,并且這些函數(shù)沒(méi)有 member setState

您可以通過(guò)兩種方式解決問(wèn)題:

  1. 將它們聲明為不this通過(guò)編寫(xiě)getFilteredTrades = () => { ... }和綁定的箭頭函數(shù)getAllTrades = () => { ... }。

  2. 通過(guò)在構(gòu)造函數(shù)中編寫(xiě)和將函數(shù)的關(guān)鍵字綁定this到類對(duì)象。this.getFilteredTrades = this.getFilteredTrades.bind(this)this.getAllTrades = this.getAllTrades.bind(this)


查看完整回答
反對(duì) 回復(fù) 2023-04-27
?
炎炎設(shè)計(jì)

TA貢獻(xiàn)1808條經(jīng)驗(yàn) 獲得超4個(gè)贊

似乎,你在某個(gè)時(shí)候失去了背景。嘗試綁定您的方法或使它們成為箭頭函數(shù):

getAllTrades=()=>{...}

如果沒(méi)有幫助,請(qǐng)嘗試將其與上面建議的 self=this 技巧結(jié)合使用


查看完整回答
反對(duì) 回復(fù) 2023-04-27
  • 2 回答
  • 0 關(guān)注
  • 194 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)