2016-04-12 21 views
0

即時通訊不完全確定我知道上下文,但..使用上下文傳遞全局變量?

我想知道如果它可能共享幾個變量(顏色,溝槽寬度等)跨項目使用它?保存多次導入到單個文件?

如果它適當地使用上下文,會怎麼做呢?

例子:variables.js

export const primary = 'blue'; 
export const gutter = 10; 

理想我想它只是工作,所以變量可以在飛行

container: { 
paddingHorizontal: gutter, 
backgroundColor: primary 
} 

它是一個原生的反應項目中使用。

回答

1

context的目標確實是在您的所有組件之間共享全局數據。但依賴全球數據通常不是一個好主意。如果您的React組件依賴於某些「全局變量」的存在,那麼它會使它們不那麼自包含,並且更難以重用。

React框架作者自己不鼓勵使用context,因爲它通常會導致反模式。 context的主要用例不是將全局變量注入組件,而是將它們連接到全局可用的數據源和動作調度程序。 ReduxReact-Redux提供了一個非常漂亮的抽象context,你應該檢查這些庫。

基本概念是創建獨立的獨立組件,它們不依賴於任何東西,而只依賴於自己的props - 然後將它們包裝到使用上下文將上述道具連接到共享應用程序狀態的「連接的包裝組件」中和行動創造者。

在這種情況下,你的組件需要gutter爲他們的渲染將他們的API中暴露出gutter道具的每一個 - 然後你就會創建一個自動地從共享狀態gutter連接組件。

有關詳細說明,請參閱Redux documentation