setState作为react 神方法大家都知道  并且它是一个方法 要传入一个对象来更新组件的state,

出现

this.setState is not a function  

最常见的就是在function(){

function(){

}

}

fn套fn的状态下没有缓存this 使this没有指向正确的组件实例化对象 导致访问不到setState方法,当然还有别的情况导致this的指向问题


以上都是太平常的问题大家看看就好

注意下面是楼主范二产生的另外一种情况 高能如下:


首先大家看到打印的this 正常,是组件实例化对象this指向没有错,再仔细看this下有setState属性并且还被赋值了

再让我们看看实际上setState方法在哪里

所以说是方法还是在的 只是实例下面有setState属性 所以就访问不到我们想访问的setState方法了(骚年如果这不知道就去看原型链吧)

楼主find出这个页面的所有setState字段 猛然发现

这个setState这么别扭呢    全是"="惹得祸

本来是个方法 这里变成给this(实例)添加属性了  还是个同名的setState所以会上第一张图的的现象  看到了吧 手误害死人啊


Logo

讨论HarmonyOS开发技术,专注于API与组件、DevEco Studio、测试、元服务和应用上架分发等。

更多推荐