![]() |
1
52
这就是当你想在点击时发送一个请求,并在发送时禁用按钮时的情况 更新:@tkd_aj指出,这可能会发出警告:“无法对未安装的组件执行React状态更新。这是一个no op,但它表明应用程序中存在内存泄漏。要修复,请取消useEffect清理功能中的所有订阅和异步任务。”
实际上,发生的情况是,请求仍在处理中,而与此同时,组件将卸载。然后它试图
|
![]() |
2
27
你不需要在点击按钮时发送请求,相反,你需要的只是一个处理程序方法,你可以使用它进行优化
使用变量跟踪请求
|
![]() |
3
6
在函数式编程中,任何异步函数都应该被视为副作用。 在处理副作用时,你需要将副作用开始的逻辑和副作用结果的逻辑分开(类似于redux传奇)。 基本上,按钮的责任只是触发副作用,副作用的责任是更新dom。
此外,由于react处理的是组件,所以在进行任何操作之前,您需要确保您的组件仍已安装
为了解决这个问题,我们可以创建一个自定义钩子
那么你的代码应该是这样的
注:
最好将副作用的逻辑与触发副作用的逻辑分开(即
更新:
使用
例子:
|
![]() |
4
4
您可以像在问题中那样,通过某些状态更改来获取数据,但也可以像在类组件中使用的那样,直接在单击处理程序中获取数据。 实例
|
![]() |
5
2
您可以像以前一样在状态中定义布尔值,并在触发请求后将其设置为
|
![]() |
6
0
可以创建自定义挂钩
使用
|
![]() |
7
0
为此,您可以在ReactJS中使用回调钩子,这是最好的选择,因为useEffect不是一个正确的模式,因为您可能会设置状态以使用useEffect进行api调用,但是由于其他一些更改而产生的额外渲染将导致请求进入循环。
|
|
BADRUM · 执行两个获取功能后,如何导航回页面? 1 年前 |
|
Anaya Ammar · 渲染后未显示的值 1 年前 |
![]() |
Zemelon · -moz背面可见性不适用于顺风css 1 年前 |
![]() |
Mark C. · 制作一个可松开的单选按钮[关闭] 1 年前 |