У меня есть массив объектов в моем состоянии.Я хочу обновить последний объект в массиве.Но я не хочу явно упоминать ключи при обновлении объекта.
Вот так выглядит мой код прямо сейчас.
import React from 'react'
import update from 'immutability-helper'
class Container extends React.Component {
state = { queue: [
{title: 'title 1', message: 'message 1', dismissible: false},
{title: 'title 2', message: 'message 2', dismissible: true},
{title: 'title 3', message: 'message 3', dismissible: false},
] }
updateLast = (contents) => {
this.setState({
queue: update(this.state.queue, {
[this.state.queue.length-1]: {
title: {$set: contents.title},
message: {$set: contents.message},
dismissible: {$set: contents.dismissible},
},
}),
})
}
render() {
return (
<div className="notifications">
{this.state.queue.map((notification, key) => (
<Notification key={key} {...notification} />
))}
</div>
)
}
Как вы можете видеть, в update
метод Я явно указываю ключи объекта title
, message
и т. д.Можно ли как-то обновить все ключи объекта с помощью оператора map
или spread ...
?