關(guān)于this.setState is not a function 的報(bào)錯(cuò)解決

寫(xiě)項(xiàng)目的時(shí)候在實(shí)現(xiàn)組件內(nèi)部功能的時(shí)候晾剖,用到了React的狀態(tài)管理。然后報(bào)了個(gè)錯(cuò)梯嗽。


報(bào)錯(cuò).png

代碼如下

componentDidMount() {
        window.onscroll = function () {
            let scrollTop = document.documentElement.scrollTop || document.body.scrollTop;
            let clientHeight = document.documentElement.clientHeight;
            let style = scrollTop > clientHeight ? 'backTop show' : 'backTop';
            this.setState({ backStyle: style });
        }
    }

一打眼看真的沒(méi)啥問(wèn)題齿尽,沒(méi)寫(xiě)成賦值的形式,也沒(méi)多點(diǎn)啥灯节,也沒(méi)少點(diǎn)啥循头。
上網(wǎng)上一查,傻眼了显晶。一定要注意this的作用域贷岸。
幫助解決的網(wǎng)站:# 倒計(jì)時(shí)功能,用setInterval設(shè)置每秒重設(shè)狀態(tài)磷雇,報(bào)錯(cuò)this.setState is not a function

看一下this吧偿警,打印出來(lái):

componentDidMount() {
        window.onscroll = function () {
            let scrollTop = document.documentElement.scrollTop || document.body.scrollTop;
            let clientHeight = document.documentElement.clientHeight;
            // let style = scrollTop > clientHeight ? 'backTop show' : 'backTop';
            // this.setState({ backStyle: style });
            console.log('window this:',this);
        }
        console.log('react this:',this);
    }

結(jié)果明顯:


打印結(jié)果.png

Window對(duì)象里必然是沒(méi)有setState方法的啊。果然是太不仔細(xì)了唯笙。這種低級(jí)錯(cuò)誤螟蒸。

解決方式就是:
1、使用ES6 箭頭函數(shù)崩掘。
2七嫌、不是用箭頭函數(shù),在函數(shù)結(jié)尾 .bind(this)

總結(jié)起來(lái)就是苞慢,在React中盡量使用箭頭函數(shù)诵原,畢竟React本身就主要使用ES6 的語(yǔ)法。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末挽放,一起剝皮案震驚了整個(gè)濱河市绍赛,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌辑畦,老刑警劉巖吗蚌,帶你破解...
    沈念sama閱讀 211,743評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異纯出,居然都是意外死亡蚯妇,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,296評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門暂筝,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)箩言,“玉大人,你說(shuō)我怎么就攤上這事焕襟》衷” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 157,285評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵胧洒,是天一觀的道長(zhǎng)畏吓。 經(jīng)常有香客問(wèn)我墨状,道長(zhǎng),這世上最難降的妖魔是什么菲饼? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,485評(píng)論 1 283
  • 正文 為了忘掉前任肾砂,我火速辦了婚禮,結(jié)果婚禮上宏悦,老公的妹妹穿的比我還像新娘镐确。我一直安慰自己,他們只是感情好饼煞,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,581評(píng)論 6 386
  • 文/花漫 我一把揭開(kāi)白布源葫。 她就那樣靜靜地躺著,像睡著了一般砖瞧。 火紅的嫁衣襯著肌膚如雪息堂。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 49,821評(píng)論 1 290
  • 那天块促,我揣著相機(jī)與錄音荣堰,去河邊找鬼。 笑死竭翠,一個(gè)胖子當(dāng)著我的面吹牛振坚,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播斋扰,決...
    沈念sama閱讀 38,960評(píng)論 3 408
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼渡八,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了传货?” 一聲冷哼從身側(cè)響起屎鳍,我...
    開(kāi)封第一講書(shū)人閱讀 37,719評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎损离,沒(méi)想到半個(gè)月后哥艇,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體绝编,經(jīng)...
    沈念sama閱讀 44,186評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡僻澎,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,516評(píng)論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了十饥。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片窟勃。...
    茶點(diǎn)故事閱讀 38,650評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖逗堵,靈堂內(nèi)的尸體忽然破棺而出秉氧,到底是詐尸還是另有隱情,我是刑警寧澤蜒秤,帶...
    沈念sama閱讀 34,329評(píng)論 4 330
  • 正文 年R本政府宣布汁咏,位于F島的核電站亚斋,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏攘滩。R本人自食惡果不足惜帅刊,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,936評(píng)論 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望漂问。 院中可真熱鬧赖瞒,春花似錦、人聲如沸蚤假。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,757評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)磷仰。三九已至袍嬉,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間芒划,已是汗流浹背冬竟。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,991評(píng)論 1 266
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留民逼,地道東北人泵殴。 一個(gè)月前我還...
    沈念sama閱讀 46,370評(píng)論 2 360
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像拼苍,于是被迫代替她去往敵國(guó)和親笑诅。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,527評(píng)論 2 349

推薦閱讀更多精彩內(nèi)容

  • 作為一個(gè)合格的開(kāi)發(fā)者疮鲫,不要只滿足于編寫(xiě)了可以運(yùn)行的代碼吆你。而要了解代碼背后的工作原理;不要只滿足于自己的程序...
    六個(gè)周閱讀 8,428評(píng)論 1 33
  • HTML模版 之后出現(xiàn)的React代碼嵌套入模版中俊犯。 1. Hello world 這段代碼將一個(gè)一級(jí)標(biāo)題插入到指...
    ryanho84閱讀 6,222評(píng)論 0 9
  • GUIDS 第一章 為什么使用React妇多? React 一個(gè)提供了用戶接口的JavaScript庫(kù)。 誕生于Fac...
    jplyue閱讀 3,525評(píng)論 1 11
  • 文/逗逗 圖/攝圖網(wǎng) 人與人之間七问,總是通過(guò)語(yǔ)言來(lái)溝通思想,而有些話茫舶,可能是說(shuō)者無(wú)心械巡,聽(tīng)者卻有意,比如有些長(zhǎng)輩不合...
    遇見(jiàn)逗逗閱讀 227評(píng)論 0 1
  • 從2月11日開(kāi)始,以老公偶有咳嗽讥耗,到我發(fā)燒咳嗽有勾,同時(shí)老大老二持續(xù)發(fā)燒咳嗽,因勞累照顧大家而生病的婆婆古程,到17日柠衅,大...
    王俊婷閱讀 286評(píng)論 0 0