2017-02-18 45 views
0

标题说全部。我想我已经尝试了所有可能的组合,但他们都没有效果。内容丰富的内容管理(节点库):不会更新条目

我在做什么错?

第一:

client.getSpace('<SPACEID>') 
.then((space) => { 
     space.updateEntry({ 
     "sys": { 
     id: "<ENTRYID>", 
     version:45 
      }, 
     "fields": { 
     "job": { 
      "fr-FR": "blablabla" 
      } 
     } 
    }) 
}) 

=>未处理的承诺排斥类型错误:space.updateEntry不是函数

第二:

client.getSpace('<SPACEID>') 
     .then((space) => { 
      space.getEntry(<ENTRYID>) 
      .then((entry) => { 
       var ver = entry.sys.version 
       var id = entry.sys.id 
       entry = { 
        "sys":{ 
         id: id, 
         version:ver 
        }, 
        "fields": { 
         "job": { 
          "fr-FR": "blablabla" 
         } 
        } 
       } 
       entry.update() 
      }) 
     }) 

=>得到entry.update()不是功能

三:

.then((space) => { 
    space.getEntry(entryId) 
    .then((entry) => { 
     entry.fields.job = {"fr-FR": "blabla"} 
     entry.update() 
    }) 
}) 

=>得到了异常 ' - [__ NSCFNumber长度]:无法识别的选择发送到实例0xb0000000000002d3'

第四:

entry.fields.job['fr-FR'] = 'blabla' 

=>相同的异常

ExceptionsManager.js:78 Exception '-[__NSCFNumber length]: unrecognized selector sent to instance 0xb000000000000013' was thrown while invoking sendRequest on target RCTNetworking with params (
     { 
     data =   { 
      string = "{\"fields\":{\"fireid\":{\"fr-FR\":\"bla\"},\"commission\":{\"fr-FR\":\"bla\"},\"dep\":{\"fr-FR\":\"bla\"},\"desc\":{\"fr-FR\":\"bla\"},\"email\":{\"fr-FR\":\"[email protected]\"},\"firstname\":{\"fr-FR\":\"firstname\"},\"job\":{\"fr-FR\":\"blabla\"},\"name\":{\"fr-FR\":\"name\"},\"tel\":{\"fr-FR\":\"0675234573\"},\"type\":{\"fr-FR\":\"Collaborateur\"}}}"; 
      trackingName = unknown; 
     }; 
     headers =   { 
      accept = "application/json, text/plain, */*"; 
      authorization = "Bearer TOKEN"; 
      "content-type" = "application/vnd.contentful.management.v1+json"; 
      "x-contentful-user-agent" = "contentful-management.js/1.3.1"; 
      "x-contentful-version" = 1; 
     }; 
     incrementalUpdates = 0; 
     method = PUT; 
     responseType = text; 
     timeout = 0; 
     url = "https://api.contentful.com:443/spaces/<SPACEID>/entries/<ENTRYID>"; 
    }, 
    139 
) 

回答

0

来更新您可以执行以下操作: 首先,您需要输入对象,您可以创建它,或者按ID输入并输入:

// You can get an Entry object by 
// 1. Creating one 
var myEntry 
space.createEntry({}).then((entry) => {myEntry = entry}) 

// 2. Get an existing one 
space.getEntry('ENTRY_ID').then((entry) => {myEntry = entry}) 

// to Update an entry you can do the following 
entry.fields.name['en-US'] = 'Blog Post' 
entry.update() 
.then(entry => console.log(entry.fields.name['en-US'])) 

再次它取决于你进入的领域,你可能不需要做[en-US]如果你没有本地化的内容

+0

非常感谢您的回答迅速,大加赞赏。如果这有效,我会住在更好的世界,但我真的认为它不行。我可以很容易地创建一个条目,但: 1 /如果我不做“工作:{”fr-FR“:”blabla}“,API表示它需要一个对象并且会拒绝一个字符串。做任何事情与创建的条目(甚至entry.publish()),它会引发异常的异常“ - [__ NSCFNumber长度]:无法识别的选择发送到实例0xb000000000000013”,而在目标RCTNetworking 3 /当条目是调用sendRequest将被抛出保存的,它没有发布(无需现场未满足的) –

+0

@ThomasPoirier错误是有点奇怪和,你通过代理什么的?什么是你的实际安装使用网络,我不认为这是关系到SDK? –

+0

建立是反应本地V0.33的代码是: \t \t client.getSpace( 'SPACEID') \t \t。然后(空间=> { \t \t \t space.getEntry(ENTRYID) \t \t \t。然后(条目=> { \t \t \t \t entry.fields.job [ 'FR-FR'] = '工作waouh' \t \t \t \t entry.update() \t \t \t \t。然后(条目=>的console.log(entry.fields。工作[ 'FR-FR')) \t \t \t}) \t \t}) –