出问题的代码是这样的
import {filterDataFun, testData} from '@/utils/test' // 引入测试数据
// 省略前面无关代码...
let res = response.data
const arr = data.slice(0,10)
//省略一些代码
// 关键在这
res = filterDataFun(testData)
// 问题报错在这 - A state mutation was detected between dispatches......
dispatch(setArrData(arr))
setResponseData(res)
解决方法:
// res = filterDataFun(testData)
// 替换成
res = filterDataFun(structuredClone(testData))
不知道为什么出这个问题,之前搜索只有一篇相似问题的解决方法,就是深拷贝,但是我深拷贝的是dispatch的数据不是setState的。现在我改成深拷贝setState的数据就成了。