在Parse中使用React Native创建具有关系的新对象

Nao*_*den 6 parse-platform reactjs react-native

似乎没有关于如何使用与Parse-ReactNative的关系创建新的Parse对象的文档ParseReact.Mutation.Create.我求助于此:

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

这是创建新的objectClassParse对象,但该列relationColumn不显示与给定的关系relatedObject.

关于如何做到这一点的任何想法,最好是在一个查询中ParseReact.Mutation.Create

Kev*_*hao 2

所以我的代码正在使用ParseReact.Mutation.AddRelation,这里是:

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

@naoisegolden 你没有放在.dispatch()末尾,AddRelation所以这可能是一个问题。

另一件让我花了很长时间才弄清楚的事情是我在我的内部使用了错误 ,我应该使用指针指向的类的,但我使用的是所属类的 ......objectIdAddRelationobjectIdobjectIdrelation

如果这仍然不适合您,请尝试 REST 方式来执行此操作:

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();
Run Code Online (Sandbox Code Playgroud)