成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

React-native中頁面卸載后setState出現(xiàn)警告的解決辦法

verano / 3157人閱讀

摘要:在使用開發(fā)時(shí)經(jīng)常出現(xiàn)這個(gè)警告這個(gè)警告是因?yàn)槌霈F(xiàn)在異步網(wǎng)絡(luò)請(qǐng)求返回時(shí)頁面已經(jīng)卸載了,此時(shí)仍然會(huì)執(zhí)行的代碼導(dǎo)致的,有很多解決辦法,一般就是加個(gè)變量來判斷是否卸載,但是這樣挺麻煩的在每個(gè)頁面都添加,我們可以用高階組件來復(fù)用邏輯我們可以定義一個(gè)

1.在使用react-native開發(fā)時(shí)經(jīng)常出現(xiàn)這個(gè)警告:
Warning: setState(...): Can only update a mounted or mounting component. This usually means you called setState() on an unmounted component. This is a no-op. Please check the code for the xxx component
這個(gè)警告是因?yàn)槌霈F(xiàn)在異步網(wǎng)絡(luò)請(qǐng)求返回時(shí)頁面已經(jīng)卸載了,此時(shí)仍然會(huì)執(zhí)行setState的代碼導(dǎo)致的,有很多解決辦法,一般就是加個(gè)isMount變量來判斷是否卸載,但是這樣挺麻煩的在每個(gè)頁面都添加,我們可以用高階組件來復(fù)用邏輯
2.我們可以定義一個(gè)ts模塊

import *as React from "react"
const SafeSetState = function

(WrappedComponent:React.ComponentClass

) { return class SafeComponent extends WrappedComponent{ private isMount:boolean componentDidMount(){ this.isMount=true if(super.componentDidMount){ super.componentDidMount() } } componentWillUnmount(){ this.isMount=false } setState(state,callback?){ if(this.isMount){ super.setState(state,callback) } } } }; export default SafeSetState

我們這種高階組件方式叫反向繼承,我們添加一個(gè)isMount屬性,在setState時(shí)判斷一下裝填就OK了

其實(shí)還有其他高階解決辦法,可以參考這個(gè)大神的文章從一次react異步setState引發(fā)的思考

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/99918.html

相關(guān)文章

  • React和React-native踩坑記

    摘要:坑請(qǐng)求跨域問題使用時(shí),其中的已經(jīng)默默幫你做了很多事,都幫你配置好了所以你發(fā)現(xiàn)你找不到相關(guān)的配置文件。放到服務(wù)器上仍然是空白的無法訪問。原來是因?yàn)槁窂絾栴},簡單配置一下即可。上文提到過已經(jīng)幫我們做好了很多事,方便在此,麻煩也在此。 react坑: 1、fetch請(qǐng)求cookie跨域問題使用creat-react-app時(shí),其中的react-script已經(jīng)默默幫你做了很多事,都幫你配置好...

    yck 評(píng)論0 收藏0
  • 「譯」setState如何知道它該做什么?

    摘要:本文翻譯自原作者如果有任何版權(quán)問題,請(qǐng)聯(lián)系當(dāng)你在組件中調(diào)用時(shí),你覺得會(huì)發(fā)生什么當(dāng)然,會(huì)用這條狀態(tài)重新渲染組件并且更新匹配到的,然后返回元素。如果你之前使用過一些渲染器比如說,你可能知道在頁面中使用超過一個(gè)渲染器是沒什么問題的。 本文翻譯自:How Does setState Know What to Do?原作者:Dan Abramov 如果有任何版權(quán)問題,請(qǐng)聯(lián)系shuirong199...

    OldPanda 評(píng)論0 收藏0
  • ReactNative開發(fā)筆記(持續(xù)更新...)

    摘要:,已過期,請(qǐng)使用代替。解決方案安卓增加屬性并設(shè)置為官方解釋當(dāng)圖片實(shí)際尺寸和容器樣式尺寸不一致時(shí),決定以怎樣的策略來調(diào)整圖片的尺寸。 本文均為RN開發(fā)過程中遇到的問題、坑點(diǎn)的分析及解決方案,各問題點(diǎn)之間無關(guān)聯(lián),希望能幫助讀者少走彎路,持續(xù)更新中... (2019年3月29日更新) 原文鏈接:http://www.kovli.com/2018/06/... 作者:Kovli - 如何在原生...

    浠ラ箍 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<