reactjs - 有没有办法在反应钩子依赖数组中使用 JS 休息语法?
问题描述
我有这个 useEffect React 钩子:
import {useEffect, useState} from 'react';
const [state, setState] = useState();
useEffect(() => {
api.post(url, state)
.then(response => {
setState(
...state,
response: response.data
)
})
}, []);
使用状态作为 API 请求的有效负载,并state
使用响应进行更新。
显然,如果我放入state
钩子依赖数组,我们有一个无限循环(因为state
API 调用后更新),但我需要调用 API 并在state.response
每次状态更改时更新。
是否可以在state
值更改时更新,除了state.response
?
我试过了 :
const {response, ...rest} = state;
并放入rest
依赖项,但这不起作用
谢谢您的帮助
解决方案
你可以做类似的事情
import React, {useEffect, useState} from 'react';
const [state, setState] = useState({
apiParam: {},
response: null
});
useEffect(() => {
api.post(url, state.apiParam)
.then(response => {
setState(state=>({
...state,
response: response.data
})
)
})
}, [state.apiParam]);
推荐阅读
- javascript - 如何使用 c# 从 fcm 向安卓、ios 和 web 发送推送通知
- wordpress - 我想以轮播风格显示我的自定义插件的图像
- python - 在没有服务器的情况下运行 Django
- connection - 如何解决 ConnectionRefusedError: [Errno 111] Connection denied
- python-3.x - 如何用条件填充熊猫中的空单元格值
- python - 加速 pandas 上的复杂函数
- google-chrome - Flutter URL 创建并打开一个新的 google drive 文件夹
- swift - Swift 包管理器 - 项目中无法识别协议
- java - 尝试使用最大堆的逻辑来实现最小堆
- java - 用于 4 眼检查的休眠锁定对象