2016-07-02 7 views
0

FluxがReactJSで正しく実装されているかどうか質問してください。サービスからコールバックをReact + Fluxのコンポーネントに戻す

私はフォームの情報を渡して、私のContactServiceを送信時に呼び出す連絡フォームを持っていると言います。提出が成功したかどうか

ContactService.js

import request from 'superagent'; 
import when from 'when'; 
import ContactActions from '../actions/'; 

let constants = require('../constants.js'); 
const BASE_URL = constants.default.BASE_URL; 

class ContactService { 

    submitFormData(formData) { 
    request 
    .get(BASE_URL + 'api/v1/contact') 
    .end(function(err, res){ 
     if (!err && res){ 
     // This is where my question is 
     } else { 
     console.log("There has been an error submitting contact form to API"); 
     console.log(err) 
     // This is also kind of where my question is 
     } 
    }) 
    } 
} 

export default new ContactService(); 

は今、私は私のコンポーネントに通知します。私の質問は、それを行う最善の方法は何ですか? APIからデータを取得している場合や、コンポーネントの状態を変更する必要がある場合は、レスポンスをアクションに渡し、コンポーネントが登録できるStoreにデータを保存することで対応します。

ここでは、確認やエラーメッセージを表示できるようにするための応答が必要です。それはまだアクションとストアを通過する必要がありますか?または、コンポーネントに直接約束を返すなど、ストアをまったく関与させずにコールバック関数を実行できるように、より良い方法がありますか?

+0

を介して行われなければならない、アクションからデータを返すことはありません、アクションは '火災で、 –

+0

forget'でも、私はコンポーネントから直接サービスを呼んでいますので、私はアクションからではなく、サービスからデータを返すだろう。 – jmknoll

答えて

0

この種のものは、常にストア/フラックスの動作を使用してください。

ディスパッチa Promiseハンドラのdata_received,data_error。これは意味が分かりやすく、デバッグが簡単で、他のすべてと同じデータフローを使用します(アクション - >ストア - >ビュー)。

0

フラックスアーキテクチャで検索したすべてのデータを格納し、アクション

関連する問題