我正在嘗試在 React 中創建我的專案。專案的這一部分包含一個專案串列,每個專案都有一個按鈕 X 來洗掉該專案。每一個專案,都是我的反應應用程式的一個組件。當按下按鈕時,我設定了一個名為 setPopup 的變數(通過 useContext 傳遞),因此會出現一個彈出視窗,詢問您是否確定要洗掉該檔案。問題是當我點擊檔案時,出現這個錯誤:
TypeError: Cannot read properties of undefined (reading 'setPopup')
這是組件的代碼:
import '../styles/styleF.css';
import {PopupContest} from './HomePage';
import { useContext } from 'react';
const SFile = (n) => {
const v = useContext(PopupContest);
let currentImg = c;
return <>
<div className="fileSingle">
<img src={currentImg} alt="img" style={{'height':'50px', 'width':'50px','position':'relative', 'top':'5', 'left':'0'}} />
<h3>{n.name "." n.img}</h3>
<button style={{'height':'50%', 'marginTop':'10px'}} onClick={() => {v.setPopup(6); v.setSelectFile(n.ident "")}}>X</button>
</div>
</>
}
export default SFile;
我想知道為什么會發生這種情況,以及如何正確修復它。有效洗掉檔案的代碼在其他檔案和組件中,并且有效。我在一些答案中讀到我應該檢查它是否未定義,但為了使檢查條件,代碼無論如何都會中斷。所以,我不知道如何管理它。有人可以幫忙嗎?非常感謝
uj5u.com熱心網友回復:
該PopupContest背景關系必須有一個提供商與此Provider必須包裝在是的父(任何電平)的組分SFile組成。然后就可以使用PopupContestinSFile組件的消費者了。
像這樣的東西:
import {Provider as PopupContestProvider} from './HomePage';
return (
<PopupContestProvider>
<SFile />
</PopupContestProvider>
);
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/370879.html
標籤:javascript 反应
上一篇:反應狀態更新并顯示新值
下一篇:反應路線如何到達我想要的頁面
