访问函数的不同级别中的变量

时间:2017-05-17 01:33:58

标签: javascript firebase redux

我在SOF中的第一个问题似乎有些愚蠢,但让我们考虑一下我是Web开发新手并创建我的第一个JavaScript应用程序:)。我试图访问变量的值,以便在调度时使用它。该值是我从Firebase数据库获得的密钥,我想将值传递给“dispatch”方法中的“子”选项。这就是我所做的

export function addUser(name, username, image) {
  var lastIndex;
  usersRef.limitToLast(1).once("child_added", function(snapshot) {
    lastIndex = snapshot.key;
  });
  return dispatch => usersRef.child(lastIndex).set({"name": name, "username": username, "image": image});
}

lastIndex是我尝试在调度中访问的变量,但它返回未定义的

1 个答案:

答案 0 :(得分:2)

您正在事件侦听器中设置lastIndex,在调度调度时,事件尚未被触发。处理异步调用是Redux-thunk将调度传递给返回函数的操作的原因。更好的方法是

$dataProviderTranscation = new ActiveDataProvider([
    'query' => OpOccupierTrxGroup::find()->where(['occupier_id'=>$occupier['id'])->all();

但是这样的功能在中间件中更好。