【发布时间】:2020-07-14 14:00:08
【问题描述】:
我正在处理表格内的切换按钮状态。当对 api 的请求失败时,我需要返回错误并且检查的状态不能改变。
Checked 由来自 api 的特定数据控制。发生的情况是,当 setErrors 重新渲染组件时,我认为这是切换按钮更改的原因。
async function handleStatus(groups, status, id) {
const response = await chengeStatus(groups, status, id);
const { status: state, data, message } = response;
if (state) {
setGroups(data);
return true;
} else {
setErrors({
status: true,
message: message,
});
return false;
}
}
切换按钮:
const columns = [
{
cell: (row) => {
return (
<Switch
checked={row.enable}
handleChange={() => handleStatus(groups, row.enable, row.id)}
></Switch>
);
},
width: "80px",
},
];
错误显示:
return(
{errors.status &&
<Alert
message="Erro"
description={errors.message}
type="error"
showIcon
/>
}
)
【问题讨论】:
-
if (state) {这个state来自哪里? -
@MayankPandeyz 来自 chengeStatus 函数,调用 API
-
@MayankPandeyz 我解构并将状态名称分配给状态
-
@MayankPandeyz 将
status改名为stateconst { status: state } = response; -
它存在,伙计。当我这样做时 {status : state} 我有点像@AllenWong 所说的那样给了它一个“昵称”。
标签: reactjs react-hooks react-lifecycle