1

需要帮助更新 CF 条目中的字段。它是一个没有默认值的下拉字段。

我试图通过从 CF 环境中获取条目、设置相应的字段并像这样更新它来做到这一点:

        client.getSpace(spaceId)
        .then((space) => {space.getEnvironment(environment)
            .then((environment) => {environment.getEntry('1234567890')
                .then((entry) => {
                    entry.fields = {
                        state: {
                            'en-US': 'Arizona'
                        }
                    }
                    return entry.update()
                })
            })
        })

通过这样做,该state值得到更新,但其他现有字段值被删除。

内容更新的内容文档在此处声明相同:https://www.contentful.com/developers/docs/references/content-management-api/#/introduction/updating-content,但我找不到实现它们的方法建议。

如何在state不丢失所有其他字段的情况下更新值?

4

1 回答 1

0

当你这样做

entry.fields = {
  state: {
    'en-US': 'Arizona'
  }
}

您将整个fields对象替换为仅包含一个键的新对象:state.
而不是设置entry.fields,你应该设置entry.fields.state

例子:

client.getSpace(spaceId)
    .then(space => space.getEnvironment(environment))
    .then(environment => environment.getEntry('1234567890'))
    .then(entry => {
        entry.fields.state = {
            'en-US': 'Arizona'
        }
        return entry.update()
    });

另外:我改变了你的使用方式.then()。Promises 的好处之一是您不必嵌套回调。在这里,您正在嵌套回调。您可以链接.then()调用以使您的代码更具可读性,就像我在上面的示例中所做的那样。请参阅:承诺不只是回调吗?

于 2022-01-28T14:27:52.510 回答