我這些狀態掛鉤:
const [features, setFeatures] = useState([])
const [medicalProblem, setMedicalProblem] = useState([])
我的medicalProblem變數將以 api 的回應作為初始值:
useEffect(() => {
getMedicalProblem()
}, []);
const initFeatures = (index) => {
let mfeatures = medicalProblem[index].features //I got Cannot read properties of undefined (reading 'features') error
mfeatures.sort(function (a, b) {
return a.order - b.order;
});
setFeatures(mfeatures)
}
const getMedicalProblem = () => {
api
.get("dental/generic/slideshow/medical-problem/")
.then((res: any) => {
const { count, results } = res
setMedicalProblem(results)
initFeatures(0)
})
.catch((err) => {
});
};
但我收到了這個錯誤:
Cannot read properties of undefined (reading 'features')
uj5u.com熱心網友回復:
有幾種方法可以做到這一點,但最簡單的可能是創建另一個 useEffect 掛鉤,它依賴于 medicalProblems 陣列,如下所示!
useEffect(() => {
if (medicalProblems) {
initFeatures(0)
}
}, [medicalProblems])
這個額外的鉤子將確保在繼續初始化您的功能之前填充您的醫療問題。讓我知道這個是否奏效!
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/468687.html
標籤:javascript 反应 打字稿 下一个.js
下一篇:打字稿更新
