刚上手react hook,想请教一下。为什么useEffer里面的setPageNum不生效呢,fnGetHospitalList方法里面的请求参数没有被重置?
刚上手react hook,想请教一下。为什么useEffer里面的setPageNum不生效呢,fnGetHospitalList方法里面的请求参数没有被重置?
还是要理解一下react的更新机制呀。
状态1:pageNum是x,fnGetHospitalList因为闭包所以一旦调用,传递的参数就是x
事件:areaCode发生变化:先更新pageNum,然后调用fnGetHospitalList,传递参数是x
状态2:因为pageNum更新而重新渲染,新的组件状态pageNum是1,fnGetHospitalList方法闭包了1作为参数。
fnGetHospitalList这个函数中请求依赖参数,而不要依赖组件的状态,调用的时候将所需的参数给他,而不是让其主动读取你的组件状态。组件的状态涉及到更新,但是传递的参数不会,传多少是多少。
10 回答11.1k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
3 回答5.1k 阅读✓ 已解决
3 回答1.8k 阅读✓ 已解决
4 回答2.4k 阅读✓ 已解决
说明没有检测到areaCode变化