3 回答

TA貢獻(xiàn)1898條經(jīng)驗(yàn) 獲得超8個(gè)贊
Material UI 用多個(gè)標(biāo)簽包裹你的按鈕。所以當(dāng)你點(diǎn)擊一個(gè)按鈕時(shí),里面可能還有其他東西被點(diǎn)擊。
將 id 傳遞給 onClick 函數(shù)將解決您的問(wèn)題,但每次單擊按鈕時(shí)它可能會(huì)創(chuàng)建一個(gè)新函數(shù)。
onClick={()?=>?handleIngredientRemove(idx)}
我建議您使用currentTarget而不是 current。
function handleInstructionRemove(event) {
? ? // Use event.currentTarget instead of event.current
? ? let idx = parseInt(event.currentTarget.id.split("-")[2]);
? ? console.log("Removing instruction " + idx);
? ? let newinstructions = instructions.filter(
? ? ? ? ? (instruction, index) => idx !== index
? ? );
? ? setInstructions(newinstructions);
?}

TA貢獻(xiàn)1744條經(jīng)驗(yàn) 獲得超4個(gè)贊
我建議不要解析元素 id 來(lái)提取索引。你可以直接傳遞:
onClick={() => handleIngredientRemove(idx)}
然后抓住它handleIngredientRemove
就像
handleIngredientRemove(idx)
現(xiàn)在刪除得很好!

TA貢獻(xiàn)1803條經(jīng)驗(yàn) 獲得超3個(gè)贊
一種簡(jiǎn)單的方法是將索引傳遞給刪除處理程序并使用該索引進(jìn)行過(guò)濾。(僅針對(duì)第一種形式進(jìn)行了更改) 這里是更新后的代碼
或者您可以在添加時(shí)使用時(shí)間戳作為 id 并使用該唯一時(shí)間戳 id 進(jìn)行刪除
添加回答
舉報(bào)