2015-09-30 7 views
6

Es scheint keine Dokumentation darüber zu geben, wie ein neues Parse-Objekt mit einer Relation mit Parse-ReactNative unter Verwendung von ParseReact.Mutation.Create erstellt wird. Ich griff auf diese:Neues Objekt mit Beziehung in Parse mit React Native erstellen

function createRow(relatedObject, data) { 
    ParseReact.Mutation.Create('objectClass', data) 
    .dispatch() 
    .then(function(newRow) { 
     ParseReact.Mutation.AddRelation(newRow, 'relationColumn', relatedObject) 
    }); 
} 

, die die neuen objectClass Parse Objekt schafft, aber die Spalte relationColumn nicht die Beziehung nicht angezeigt mit dem angegebenen relatedObject.

Irgendeine Idee, wie dies getan werden kann, vorzugsweise in einer Abfrage mit der ?

Antwort

2

so ist mein Code mit ParseReact.Mutation.AddRelation arbeiten, hier ist sie:

ParseReact.Mutation.AddRelation({ 
          "className": newRow.className, 
          "objectId": newRow.id.objectId}, 'groceryRequestRelation',[{ 
          "__type":"Pointer", 
          "className":"ClassThePointerPointingTo", 
          "objectId":"ObjectIdOfClassThePointerIsPointingTo" 
         }]).dispatch() 

@naoisegolden Sie nicht .dispatch() am Ende des AddRelation gelegt hat, so dass ein Problem sein könnte.

Eine andere Sache, die mich für immer nahm, um herauszufinden, war ich wurde mit der falschobjectId In meinem AddRelation, ich die objectId der Klasse sein sollte mit, dass der Zeiger auf zeigen wird, aber ich benutzte die objectId der Klasse, die die relation gehört ...

Wenn das immer noch nicht für Sie funktioniert, versuchen Sie den REST-Weg, dies zu tun:

var data = { 
     "groceryRequestRelation":{"__op":"AddRelation", 
     "objects": 
     [{ 
     "__type":"Pointer", 
     "className":"ClassThePointerIsPointingTo", 
     "objectId":"ObjectIdOfClassThePointerIsPointingTo" 
     } 
     ] 
    } 
    }; 

     var url = "https://api.parse.com"; 
     url += "/1/classes/Classname/objectId"; 
     fetch(url, { 
      method: 'put', 
      headers: { 
       'Accept': 'application/json', 
       'X-Parse-Application-Id': PARSE_APP_ID, 
       'X-Parse-REST-API-Key': PARSE_REST_KEY, 
       'Content-Type': 'application/json' 
      }, 
      body: JSON.stringify(data) 
     }) 
     .then((response) => { 
      console.log("inside add relation rest") 
      console.log(response); 
      return response.json(); 
     }) 
     .then((responseText) => { 
      console.log(responseText); 
     }) 
     .catch((error) => { 
      console.warn(error); 
     }) 
     .done(); 
+1

Hinzufügen dispatch() für AddRelation hat den Trick für mich. Danke Kevin! – mutp

+1

Sie können auch ein Array von Objekten als letzten Parameter in AddRelation übergeben. Für Beispiel Sie können ein Array von User-Objekten übergeben, wenn Sie diese Relation zu einer Klasse hinzufügen möchten. – mutp

+0

@muttapp np, froh zu helfen! –