【发布时间】:2021-08-02 17:07:23
【问题描述】:
您好,我正在尝试进行 API 调用,该函数的状态更改很少,但状态更改未按预期工作
const [ready, setReady] = useState(false);
const [loading, setLoading] = useState(false);
const [previewData, setPreviewData] = useState({});
const [reportGenerateProgress, setReportGenerateProgress] = useState('');
const fetchData = async (e) => {
const reports = ['a', 'b', 'c'];
const reportProgress = ['1', '2', '3', '4']
setLoading(true)
const params = {
key: e.key,
value: e.value,
preview: true,
report_type: e.key === 'account' ? "ACCOUNT" : "TAG",
case_sensitive: false
}
for (const [i, report] of reports.entries()) {
console.log(loading, previewData) // false, {}
setReportGenerateProgress(reportStatus[i + 1])
params['report_id'] = report;
const data = {[report]: "test"};
setPreviewData({...previewData, [report]: data});
console.log(loading, previewData) // false, {}
}
console.log(loading, previewData) //false, {}
}
有人能指出问题吗?我想不通。
谢谢!
【问题讨论】:
-
你为什么要设置
previewData两次? -
抱歉@RoboRobok,该片段正在调试代码
-
好的,但是你在哪里取东西?
-
这个函数作为按钮点击合成事件的动作执行
标签: reactjs react-hooks state