千巷貓影
2023-08-24 17:18:14
我的標題似乎沒有多大意義,讓我嘗試解釋一下。我有一個GameContainer包含一個ButtonContainer組件的組件。現在我ButtonContainer返回兩個按鈕,X 和 Y。我正在傳遞一個函數 foo 例如,現在在我的 Game.js 文件中我將按鈕函數作為 props ( (e) => playGame(e)) 傳遞。我需要事件目標 id 來查看用戶是否按下了 X 或 Y。我遇到的問題是當我執行以下代碼時undefined返回。游戲.jsconst playGame = (e) => { console.log(e.target.id);}return ( <GameContainer buttonFn={(e) => playGame(e)} />);游戲容器.jsreturn ( <> <p>Game name</p> <ButtonContainer buttonFn={buttonFn} /> </>);ButtonContainer.jsreturn ( <> <button onClick={buttonFn}>X</button> <button onClick={buttonFn}>Y</button> </>);我可以使用 redux,然后將狀態傳遞給我的 Game.js,但我覺得有一種更簡單的方法可以做到這一點。e.target.id 在我的 Game.js 中運行良好,但是當我決定將代碼拆分為可重用組件并使用 props 時,它返回 undefined。感謝任何幫助希望我的解釋有意義。
1 回答

SMILET
TA貢獻1796條經驗 獲得超4個贊
為按鈕添加value和。id
export default function App() {
const playGame = (e) => {
console.log(e.target.id);
};
return <GameContainer buttonFn={(e) => playGame(e)} />;
}
function GameContainer({ buttonFn }) {
return (
<>
<p>Game name</p>
<ButtonContainer buttonFn={buttonFn} />
</>
);
}
function ButtonContainer({ buttonFn }) {
return (
<>
<button id="btn-1" value="btn-1" onClick={buttonFn}>
X
</button>
<button id="btn-2" value="btn-2" onClick={buttonFn}>
Y
</button>
</>
);
}
代碼 - https://codesandbox.io/s/old-cloud-0deig?file=/src/App.js:51-592
添加回答
舉報
0/150
提交
取消