我在 Firebase Firestore 中有一个类似于下面的文档。这里的要点是我有一个数组items
,里面有对象:
{
name: 'Foo',
items: [
{
name: 'Bar',
meta: {
image: 'xyz.png',
description: 'hello world'
}
},
{
name: 'Rawr',
meta: {
image: 'abc.png',
description: 'hello tom'
}
}
]
}
我正在尝试更新元对象下的 item 数组中的一个字段。例如 items[0].meta.description 从 hello world 到 hello bar
最初我试图这样做:
const key = `items.${this.state.index}.meta.description`
const property = `hello bar`;
this.design.update({
[key]: property
})
.then(() => {
console.log("done")
})
.catch(function(error) {
message.error(error.message);
});
但这似乎不起作用,因为它删除了我想要修改的项目索引中的所有内容,而只是将描述保留在元对象下
我现在正在尝试以下基本上用新数据重写整个元对象
const key = `items.${this.state.index}.meta`
const property = e.target.value;
let meta = this.state.meta;
meta[e.target.id] = property;
this.design.update({
[key]: meta
})
.then(() => {
this.setState({
[key]: meta
})
})
.catch(function(error) {
message.error(error.message);
});
不幸的是,这似乎将我的整个 items 数组变成了一个看起来像这样的对象:
{
name: 'Foo',
items: {
0: {
name: 'Bar',
meta: {
image: 'xyz.png',
description: 'hello world'
}
},
1: {
name: 'Rawr',
meta: {
image: 'abc.png',
description: 'hello tom'
}
}
}
}
有什么想法可以更新我想要的内容吗?