React SetState

在使用react-swipe的过程中,在callback方法中想把当前tab的index赋值给 state 里面的变量

clipboard.png

clipboard.png
在我未用setState赋值的时候,输出是正确的
当我赋值后

clipboard.png

clipboard.png
输出就不对了,请问有人帮忙看下应该怎么解决吗

阅读 3k
4 个回答

具体原因是: opt 定义放在 render 函数中。轮播图每次更新,都会重新执行 render ,这样 opt 就重置了,所以在render方法里面确实最好不要setState,所以我在componentDidMount定义了

你state值最好不要再render函数里面去改变

不要在render里面setState啊,不然很容易造成死循环...

因为的this指向不对了,你在constructor里面把方法的this bind一次才可以使用this来改state,就你代码写的位置而已this的指向不对,你需要把你的方法拿到render外面去,然后使用this.yourfunctionname=this.yourfunctionname.bind(this);这样就可以在你的yourfunctionname里面去用this.setstate

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题