2015-08-28 38 views
0

我正在研究一個React應用程序,並且遇到了一個問題。我試圖將數據從概覽頁面(/)傳遞到另一個視圖ShowAllView/#/showall)。未呈現的React組件是否偵聽動作?

我做了一個Action,它傳遞來自總覽的數據。 ShowAllView班聽這Action。但是,它似乎並不是在ShowAllView類中觸發的。如果我嘗試在概覽中聽取組件中的操作,則它工作得很好。

ShowAllView類在Action時未執行其render()方法。

我正在使用React和Reflux。

有誰知道解決方案將數據從一個視圖傳遞到另一個視圖?或者一個不受約束的組件應該如何收聽Action

編輯

overview.jsx:

//some method 
Actions.selectTab(selectedTab); 

showall.jsx

mixins:[ 
Reflux.listenTo(Actions.selectTab, "setSelectedTab") 
] 
//...some more code 

也許這有點幫助:

var Routes = (
    <Route handler={App} path='/'> 
     <DefaultRoute handler={OverView} /> 
     <Route name='showall' handler={ShowAllView}></Route> 
    </Route> 
); 
+0

我們需要更多的代碼才能找到你真正想要的東西 –

+0

爲什麼你不在聽其他組件的商店更改而不是操作? –

回答

0

對於需要由不同頁面/組件知道的視圖狀態,我使用App.Store。應用程序商店偵聽動作,設置屬性,然後觸發一個事件,該事件由偵聽的上層組件獲取,該事件設置通過在組件中渲染的道具傳播的狀態。它是一個循環的事情,它的作用是保持你的邏輯清晰。