Necesita ayuda para actualizar un campo en una entrada de CF. Es un campo desplegable sin un valor predeterminado.
Traté de hacerlo obteniendo la entrada del entorno CF, configurando el campo correspondiente y actualizándolo de esta manera:
client.getSpace(spaceId) .then((space) => {space.getEnvironment(environment) .then((environment) => {environment.getEntry('1234567890') .then((entry) => { entry.fields = { state: { 'en-US': 'Arizona' } } return entry.update() }) }) }) Al hacerlo, el valor del state se actualiza, pero los otros valores de campo existentes se eliminan.
La documentación Contentful para la actualización de contenido establece lo mismo aquí: https://www.contentful.com/developers/docs/references/content-management-api/#/introduction/updating-content , pero no puedo encontrar una manera de implementar su sugerencia.
¿Cómo actualizo el valor del state sin perder todos los demás campos?
Cuando tu lo hagas
entry.fields = { state: { 'en-US': 'Arizona' } } Reemplaza el objeto de fields completo por el nuevo que contiene solo una clave: state .
En lugar de configurar entry.fields , debe configurar entry.fields.state
Ejemplo:
client.getSpace(spaceId) .then(space => space.getEnvironment(environment)) .then(environment => environment.getEntry('1234567890')) .then(entry => { entry.fields.state = { 'en-US': 'Arizona' } return entry.update() }); Además : cambié la forma en que usas .then() . Uno de los beneficios de Promises es que no tiene que anidar devoluciones de llamada. Aquí está anidando devoluciones de llamada. Puede encadenar llamadas .then() para que su código sea más legible, como hice en el ejemplo anterior. Ver: ¿No son las promesas solo devoluciones de llamada?