const [emoji, setEmoji] = useState({
like: 0,
love: 0,
laugh: 0,
sad: 0,
wow: 0,
angry: 0,
})
const emojiCount = () => {
isReacted
?
setEmoji(emoji => ({...emoji, laugh: emoji.laugh 1}))
:
setEmoji(emoji => ({...emoji, laugh: emoji.laugh-1}))
setIsReacted(!isReacted)
}
- isReacted 只是一個布爾狀態!
我試圖實作的是用函式“emojiCount”處理整個狀態,我想知道我是否能夠將“laugh”作為動態變數傳遞,它可以是“love”或“like”等。
uj5u.com熱心網友回復:
我認為你想要做的是動態傳遞物件鍵,你可以這樣做:
const [emoji, setEmoji] = useState({
like: 0,
love: 0,
laugh: 0,
sad: 0,
wow: 0,
angry: 0,
});
const emojiCount = (emojiIcon) => {
setEmoji({
...emoji,
[emojiIcon]: emoji[emojiIcon] 1,
});
}
因此,如果您像這樣呼叫該函式emojiCount("laugh"),它將更新笑鍵,將笑值增加 1。
這是一個帶有更新表情符號的動態按鈕的沙盒: https ://codesandbox.io/s/adoring-benz-2zeyzh?file=/src/App.js
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/457162.html
上一篇:統一的隨機事件?
