2015-10-29 87 views
0

的中間不能派遣我有一個列表下拉。點擊列表後,它將顯示在頁面另一側的表格中。通量作出反應 - 在調度

每當創建一個新的列表,我要顯示它,就好像它被點擊(如下圖所示的代碼)。但是,爲了將其顯示在表格中,我需要撥打ListAssignmentsStoreActions.loadListAssignments(list);

handleClick: function() { 
    var list = this.props.data; 
    ListAssignmentsStoreActions.loadListAssignments(list); 
}, 

//invoked after initial rendering 
componentDidMount: function() { 
    var loadAssignmentsForList = this.props.loadAssignmentsForList; 
    console.log("Name " + this.props.data.name); 
    if(loadAssignmentsForList){ 
     this.handleClick(); 
    } 
} 

的問題是,我得到:

error = Error: Invariant Violation: Dispatch.dispatch(...): Cannot dispatch in the middle of a dispatch. at invariant 

我不知道該怎麼顯示除通過調用其他動作列表。

+0

很難說沒有的代碼。這是一個調度錯誤,我們可能需要你的動作文件,例如... –

回答

4

我相信你有流量錯誤。

當您選擇您的派遣行動的下拉列表,說ListSelectedAction其中有一個持有物業列表ID。

你應該有一個商店,比如ListStore,它在調度器上註冊一個監聽器/回調,監聽ListSelectedAction。 ListStore更新其屬性之一,說currentList包含在ListSelectedAction併發射事件列表ID,說LIST_CHANGED

表組件監聽LIST_CHANGED事件(不動作)和接收它的時候,從ListStorecurrentList ID讀取。 >ListSelectedAction - - >ListStore - >LIST_CHANGED - >表

同應對新的按鈕

新的按鈕 - >NewListAction

綜上所述, 下拉(ListStore作爲道具表通過) - >ListStore - >List_CHANGED - >表