【问题标题】:ReactJs server data handlingReactJs 服务器数据处理
【发布时间】:2015-07-19 06:11:57
【问题描述】:

我在 Flux 架构中有小型 reactJS 应用程序。我需要在每次单击按钮时获取服务器端数据。我在 STORE 中写了一些这样的代码

 var pieDataForMembers=[];
    var ReportStore =    assign({}, EventEmitter.prototype, {
        reportMemberList : function(reportMemberDetails){
         ob.projectMember(reportMember,function(getMembersEffort){ //ajax call
                pieDataForMembers = getMembersEffort;
            });
      return pieDataForMembers;
     }}

但是当我运行这段代码时,它不会等待服务器数据并且总是返回 NULL 值。

【问题讨论】:

    标签: javascript reactjs reactjs-flux


    【解决方案1】:

    您的 return 语句将始终在 ob.projectMember 运行回调之前返回。这就是javascript的工作原理。它将执行到块的末尾(此时返回一个为空的值),然后调用ob.projectMember,然后在稍后运行响应回调。

    你应该把return语句拿出来,它没有任何作用。您需要对服务器结果执行的任何操作都应在您作为回调传入的匿名函数中完成 ob.projectMember

    如果您使用flux方法,那么您应该从您的Action中调用您的api,然后在您的操作中使用来自服务器的响应,您应该将结果发送到调度程序,然后调度程序将其发送到商店。

    如果您想继续使用上面的方式(即从 Store 调用服务器/api),那么您需要让 store 告诉组件。这通常是通过发出一个事件来完成的,但您没有在您的问题中添加任何此类代码。所以你正在做的是我认为不是真正正确的方法。

    【讨论】:

      猜你喜欢
      • 2019-11-25
      • 2014-10-06
      • 1970-01-01
      • 2012-03-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多