gpt4 book ai didi

javascript - React Native 场景不会根据 Parse Promise 进行更新

转载 作者:行者123 更新时间:2023-11-28 00:02:50 24 4
gpt4 key购买 nike

我目前正在使用 React Native,并决定使用 Parse (parse.com) 设置我的应用程序。

我在 React Native 和 Parse Promise 中遇到了一个奇怪的错误 - 当我传递一个 Parse Promise 回调时,它会运行回调中的所有内容,但我的场景中没有任何变化。本质上,当 Parse Promise 解析时,UI 不会更新 - 但在我点击屏幕后,所有更新都会按预期发生。

这是一个代码片段,我试图在通过 Parse 成功登录后导航到新场景。我所做的就是向导航器对象传递一条新路线。 “登录成功”和“调用导航函数”都输出到控制台,但场景一开始并没有转换。但当我点击屏幕上的任意位置后,场景会按预期转换到之前的状态。

var navigate = function(object) {
console.log("Navigate function called!");
this.props.navigator.push(/* route object */);
}.bind(this);

Parse.User.logIn("email", "password").then(
function(object) {
console.log("Login successful!");
navigate(object);
},
function(error) {
console.log(error.message);
},
);

对可能发生的事情有什么想法/见解吗?

注意:我尝试使用常规 Javascript Promises 编写相同的代码,例如:

new Promise(resolve, reject)) ...)

一切都按预期进行。带有 setTimeout 的不同版本也有效。所以我的结论是 React Native 确实处理 Promise 回调和异步调用(问题不是由此而来)。

为了确保这不是 React Native 的 navigator 中的错误,我还尝试使用 setState 调用更新我的 View ,但出现了完全相同的问题。也许 Parse promise 不会以某种方式更新主线程?或者也许 Parse Promise 的实现方式导致 React Native View 卡住?

最佳答案

在尝试使用 ES6 Promise(或任何其他第三方 Promise 库)时,我遇到了同样的问题。我能够通过使用react-native的本地promise实现来解决这个问题。

Promise = require('react-native/Libraries/Promise');

我知道您正在使用解析,因此可能需要拉取请求才能获取解析 promise 以返回 react native promise 。希望这对某人有帮助,因为我花了几天时间对此感到困惑。

关于javascript - React Native 场景不会根据 Parse Promise 进行更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31630498/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com