我的组件中有这个。
addGift = () => {
const { gifts } = this.state
this.setState({
gifts: [
...gifts,
{ id: max_number(...gifts.map(gift => gift.id)) + 1 }
]
})
}
max_number是一个小帮手
export const max_number = (arr = []) => {
return arr.length > 0 ? Math.max(...arr) : 0
}
每当我触发addGift时,我都会继续{id: 1}
,我希望它应该使用max_number帮助器来增加,但它没有。
答案 0 :(得分:1)
max_number
函数采用数组,因此在调用时不应使用扩展语法:
{ id: max_number(gifts.map(gift => gift.id)) + 1 }
答案 1 :(得分:0)
max_number接受无限数量的参数而不是数组,你可以像这样使用addGrid函数
addGift = () => {
const { gifts } = this.state
this.setState({
gifts: [
...gifts,
{ id: max_number(gifts.map(gift => gift.id)) + 1 }
]
})
}
或者您可以在max_number函数中使用扩展运算符,F.ex。
export const max_number = (...arr) => {
return arr.length > 0 ? Math.max(...arr) : 0
}