2017-06-22 4 views
0

反応コンポーネントの概念証明として単純なアプリケーションを作りたいと思っていました。どこからでもアクセスできるストアを作成するように再構成を実装する方法があるのだろうかと思いました。良くないrecompose、より複雑である、Recomposeを使用して、Reduxと同様のアプリワイドストアを作成できますか?

import App from './app-container' 
import { withContext } from 'recompose' 
import React, { 
    Component, 
    PropTypes, 
} from 'react' 

// Sets up application store. 
const provide = store => withContext(
    { store: PropTypes.object }, 
() => ({ store }) 
) 

var appStore = { 
    toast: null, 
    test: "hi" 
} 

const AppWithContext = provide(appStore)(App) 

export default AppWithContext 

答えて

0

あなたのコードは、単に実際react-redux/Providerに似たものである、コンテキストに店舗を置くが、あなたはまた、react-redux/connectのようなものを実装する必要があります。これは、私が試したものですで。

+0

あなたはまだrecomposeのgetComtext、mapProps、およびpureを組み合わせてreact-redux/connectを実装できます。 – wuct

+0

@wuct 'react-redux/connect'の主な仕事は' store'を更新した後、接続されたコンポーネントに再レンダリングを知らせることです。ええ、 'recompose'で実装することは可能ですが、' store'のリスナーが呼び出された後、再レンダリングをトリガーする必要があるので、それを達成するために 'withState'も必要です。 – Isaddo

+0

私はそれについて深く考えました、店の購読を制御するために 'lifecycle'も必要ですが、' recompose'から 'withState'と' lifecycle'を削除する議論がありました。 – Isaddo

関連する問題