2016-10-19 5 views
0

私はいくつかのdemowareに取り組んでいます.2回目のAJAXコールがあります。最初のものは最後の変更日で、2番目のデータをフェッチするかどうかを教えてくれます。これはうまくいきますが、実際のアプリケーションでこれを行うよりスマートな方法があるように感じられます。私はUIサルで世界に登場しようとしています。ネストされたAJAXコールのReact redux

componentDidMount() { 
     this.getJson(); 
     setInterval(this.getJson.bind(this), 1000); 
    } 

    getJson() { 
     const el = this; 
     const isModified = (date) => { 
     let mod = false; 
     if (this.state.lastModified == date) { 
      console.log('no change'); 
     } else { 
      mod = true; 
      console.log({ 
      'previously modified': this.state.lastModified, 
      'newly modified': date 
      }); 
      el.setState({lastModified: date}); 
     } 
     return mod; 
     } 

     this.serverRequest = $.ajax({ 
     url: 'URL_LAST_MODIFIED', 
     success: function(result) { 
      const lastModified = $.parseJSON(result).LastModifiedDateTime; 
      if (isModified(lastModified)) { 
      $.ajax({ 
       url: 'URL_DATA', 
       success: function(result2) { 
       const result2Obj = $.parseJSON(result2); 
       el.setState({data: result2Obj}); 
       }, 
       error: function(xhr, status, err) { 
       alert(err.toString()); 
       } 
      }) 
      } 
     }, 
     error: function(xhr, status, err) { 
     } 
     }); 
    } 

答えて

1

私はそれがこれにrealtedていると思う: https://github.com/reactjs/redux/issues/1676

アイデアは、最初のAJAX呼び出しのためのアクションを作成している...と成功のディスパッチに別のアクションが2回目の呼び出しを実行します。

関連する問題