2015-12-13 66 views
7

我剛剛完成了一個REDX應用程序的接線工作,迄今爲止情況非常好。但是,由於狀態存儲在一個巨型商店中,因此您沒有任何可以訪問數據的模型。在redux商店中對數據進行可重複計算的最佳做法

比方說,我有一個模型類,它存儲有關用戶的一些信息。我通常會在名爲display_name的課程中添加一個功能,該功能可以智能地結合其名稱的不同部分。因此,我的不同觀點可以簡單地稱爲display_name,而不需要知道如何自己計算它。

Redux明確表示不要在狀態中存儲計算值,以便在組件中定義它。這不可能是正確的,因爲那樣你最終會在需要它的每個組件中複製這些代碼。

哪裏是適當的地方來存儲這個邏輯?

回答

7

的最簡單的方法是創建效用函數來計算這個數據,並把它們在可以由許多組件mapStateToProps功能一起使用的單獨模塊。阿超簡單的例子:

import { displayName } from "./utils"; 

function mapStateToProps(state) { 
    return { 
    displayName: displayName(state.user) 
    }; 
} 

function MyComponent(props) { 
    return <div>Name: {props.displayName}</div>; 
} 

export default connect(mapStateToProps)(MyComponent); 
相關問題