react hook useEffer里面的setState不生效

新手上路,请多包涵

刚上手react hook,想请教一下。为什么useEffer里面的setPageNum不生效呢,fnGetHospitalList方法里面的请求参数没有被重置?
99f0582343ee4bb24ee9cca786cac58.png

阅读 3.3k
2 个回答

image.png
说明没有检测到areaCode变化

还是要理解一下react的更新机制呀。
状态1:pageNum是x,fnGetHospitalList因为闭包所以一旦调用,传递的参数就是x
事件:areaCode发生变化:先更新pageNum,然后调用fnGetHospitalList,传递参数是x
状态2:因为pageNum更新而重新渲染,新的组件状态pageNum是1,fnGetHospitalList方法闭包了1作为参数。

fnGetHospitalList这个函数中请求依赖参数,而不要依赖组件的状态,调用的时候将所需的参数给他,而不是让其主动读取你的组件状态。组件的状态涉及到更新,但是传递的参数不会,传多少是多少。

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