2017-02-18 57 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}) –