ã䜿çšããŠç»åããŒã¿ïŒURLããµã€ãºïŒãããããŒã³ã³ããŒãã³ãã«æž¡ãããããŒã³ã³ããããããŸã
@connect(state => ({
header: state.header
}))
export default class HeaderContainer extends Component {
/// pass props.header data to child Header which renders image.
}
次ã«ãããããŒã®ç¶æ ãæŽæ°ããããã«ããããŒã¢ã¯ã·ã§ã³ãåŒã³åºãå¿ èŠãããå¥ã®ã³ã³ããŒãã³ãããããŸãã ç¶æ ã䜿çšãããã¢ã¯ã·ã§ã³ãå®è¡ããã ãã§ãã Afaikç§ã¯ãã®ãããªããšãããå¿ èŠããããŸãïŒ
const { dispatch } = this.props
const actions = bindActionCreators(headerActions, dispatch)
åé¡ã¯ãthis.props.dispatchã¯ã@ connectãã³ã¬ãŒã¿ã䜿çšããå Žåã«ã®ã¿äœ¿çšã§ããããã«èŠããããšã§ãã 2çªç®ã®ã³ã³ããŒãã³ãã¯ãããããŒã®ç¶æ ã«ã¯ãŸã£ããé¢å¿ããããŸããã ããã§å®éã«connectã䜿çšããå¿ èŠããããŸããããããšãå¥ã®æ¹æ³ã§ã¢ã¯ã·ã§ã³ããã€ã³ãã§ããŸããïŒ ããŒã¿ã䜿çšããªãå Žåã @ connectã䜿çšããã®ã¯ééã£ãŠãããšæããŸãã
ããããæ£ãããæ¹æ³ãã©ããã¯ããããŸããããã³ã³ããã¹ããä»ããŠã¹ãã¢ã«ã¢ã¯ã»ã¹ã§ããŸãã 次ã«ã Connector
ã³ã³ããŒãã³ããåç
§ããŠãã ããã
https://github.com/gaearon/react-redux/blob/master/src/components/createConnector.js
ç§ã¯ããªãããã©ããŒããŠããŸããã @connectã䜿çšããŠã¹ãã¢ã«ã¢ã¯ã»ã¹ããã®ã¯ãŸã£ããåé¡ãããŸããã @connectã䜿çšããã«ã³ã³ããŒãã³ãã®ã¢ã¯ã·ã§ã³ããã€ã³ã/åŒã³åºãæ¹æ³ãæ¢ããŠããŸãã
dispatch
é¢æ°ã¯ã¹ãã¢ã®ã¡ãœããã§ãã ã³ã³ããŒãã³ãã§å¿
èŠã§ããã@connect
ã䜿çšããããªãå Žåã¯ãã³ã³ããã¹ããä»ããŠã¹ãã¢ã«ã¢ã¯ã»ã¹ãããã®ãã£ã¹ãããã¡ãœããã䜿çšã§ããŸãã
class MyComponent extends Compoenent {
static contextTypes = {
store: React.PropTypes.object.isRequired,
}
render() {
const { dispatch } = this.context.store
const actions = bindActionCreators(headerActions, dispatch)
}
}
芪ã³ã³ããŒãã³ããããã£ã¹ããããæž¡ããããã§ã«ãã£ã¹ãããã«ãã€ã³ããããŠããã¢ã¯ã·ã§ã³ãæž¡ãå¿ èŠããããŸãã ããã¯ç§ãä¿¡ããŠããæ¹æ³ã§ããããã¯åé¿çã§ãããã³ã³ããã¹ããæ©èœããŸã
ããã説æããŠãããŠããããšãïŒ ããã£ãã
dispatch
å°éå
·ãšããŠæåã§ãã®ã³ã³ããŒãã³ãã«æž¡ãããšãã§ããŸãã
ç§ããã®åé¡ã«å°ãæžæã£ãŠããŸãã
ç§ãæ£ããç解ããŠããå Žåã¯ãã³ã³ããŒãã³ãã®å°éå
·ãä»ããŠdispatch
å©çšã§ããããã«ãããïŒãã®ã³ã³ããŒãã³ãããã¢ã¯ã·ã§ã³ããã£ã¹ãããã§ããããã«ããããïŒãã¢ã¯ã·ã§ã³äœæè
ã«ãã§ã«dispatch
ã«ãã€ã³ããããŠãããã®ãæäŸããå¿
èŠããããŸãã芪ã³ã³ããŒãã³ãã ãã ããã©ã¡ãã®ãœãªã¥ãŒã·ã§ã³ã§ããå°éå
·ãä»ããŠãã£ã¹ããããå©çšã§ããããã«ã connect
edã®èŠªã³ã³ããŒãã³ããå¿
èŠã§ãã
ãããã£ãŠãæçµçã«ã¯ã dispatch
äŸåé¢ä¿ã芪ã³ã³ããŒãã³ãã«è»¢éããã ãã§ãã ãããŠããã®ãããªconnect
edã®èŠªãããªãå Žåãã©ã®ããã«ãããè¡ããŸããïŒ
ããšãã°ãã³ã³ããŒãã³ãã®æ·±ãéå±€ã«ããå Žåã¯ã©ããªããŸããã
Provider
Router
AppContainer
...
...
...
TheComponentThatNeedDispatch
ãããŠã芪ã®èª°ããreduxç¶æ ã«æ¥ç¶ããå¿ èŠããªãå Žåã¯ã©ããªããŸããïŒ
connect
ã䜿çšããããšã®å¯äœçšãšããŠãã£ã¹ããããã³ã³ããŒãã³ãã§äœ¿çšã§ããããã«ãããšã芪ã®1ã€ãconnect
ããããšãåææ¡ä»¶ãšãªãããã«æãããŸããã¢ã¯ã·ã§ã³ãdispatch
ããããšãã§ããŸãã ã³ã³ããŒãã³ããã¢ã¯ã·ã§ã³ãdispatch
ããèœåãšãreduxç¶æ
ããèªã¿åãããã«connect
ã䜿çšããå¿
èŠæ§ãšã®éã«çžé¢é¢ä¿ããã£ãŠã¯ãªããªããããããã¯å¥åŠã«æããŸãã
ã³ã³ããŒãã³ãã³ã³ããã¹ãããïŒ store.dispatch
ãä»ããŠïŒ dispatch
ã¢ã¯ã»ã¹ã§ããããšã¯ããã£ãŠããŸãããæšå¥šãããæ¹æ³ã§ã¯ãªããã...
ããªãã¯ããã«ã€ããŠã©ãæããŸããïŒ
ããããšãïŒ
ã³ã³ããŒãã³ããã¢ã¯ã·ã§ã³ããã£ã¹ãããããæ©èœãšãconnectã䜿çšããŠreduxç¶æ ããèªã¿åãå¿ èŠæ§ãšã®éã«çžé¢é¢ä¿ããã£ãŠã¯ãªããªããããããã¯å¥åŠã«æããŸãã
ãªãã§å€ãªã®ïŒ connect
ã¯ãåã«ãReduxç¶æ
ã®äžéšã«æ¥ç¶ãããã§ã¯ãªãããReduxã«æ¥ç¶ããããšèããŠãã ããã 次ã«ãããã¯çã«ããªã£ãŠããŸããã³ã³ããŒãã³ãèªäœãŸãã¯ãã®èŠªã®ãããããdispatch
ã§ããããã«ããã«connect()
ããå¿
èŠããããŸãã
çŸåšã®ReactRedux APIã§ã¯ãç¶æ
ãéžæããââã«Reduxã«æ¥ç¶ããã®ã¯äŸ¿å©ã§ã¯ãããŸããã connect(state => ({}))(MyComponent)
ïŒç©ºã®ãªããžã§ã¯ããè¿ãïŒã®ãããªãã®ãæžãå¿
èŠããããŸãã ãããã dispatch
ãäžçŽåžæ°ã«ãã代æ¿APIãdispatch
ã ãããååŸããããã®APIãè¿œå ããããšãèšç»ããŠããçç±ã§ãã
ããã¯æå³ããããŸããïŒ
æ¥ç¶ã¯ãåã«ãReduxç¶æ ã®äžéšã«æ¥ç¶ãããã§ã¯ãªãããReduxã«æ¥ç¶ããããšèããŠãã ããã
ä»ã§ã¯å®å šã«çã«ããªã£ãŠããŸã:)ã
æ°ããAPIã䜿çšããã®ãåŸ ã¡ãããŸããã
ã©ããããããšããReduxã䜿ãã®ã¯è³çŠã§ãïŒ
ããã¯https://github.com/gaearon/react-redux/releases/tag/v0.5.0ã§å ¥æã§ã
ããã¯çŽ æŽãããèŠããŸãïŒ
@gaearonã¡ãã£ãšãã³ããã¹ããããã³ã³ããŒãã³ãã§bindActionCreatorsã䜿çšããæ¹æ³ã®ãã³ããæããŠãã ããã
ãAddProductã-reduxã«æ¥ç¶ãããŠããŸãïŒä»¥äžãåç
§ïŒ
__ãProductsListã
____ "ProductView"ã
ProductViewããã£ã¹ãããã§ããããã«ãããã®ã§ããããã¹ã¿ãŒã®ã補åã®è¿œå ãã«ã®ã¿æ¬¡ã®ãã®ããããŸãã
function appState(state) {
return {...};
}
export default connect(appState)(AddProduct)
ãã¹ããããã³ã³ããŒãã³ããconnect()
dispatch
ããããšããå°éå
·ãšããŠ
ãã³ã«æè¬ããŸããæ¬åœã«ããªãã®å©ãã«æè¬ããŸãã æ¬åœã«reduxã倧奜ãã§ãïŒ
ç§ããããããããããªããªãã°å¥ã®è³ªåïŒ
ã¬ãã¥ãŒãµãŒèªäœã®å
éšãããµãŒããŒAPIPOSTãªã¯ãšã¹ããé
眮ã§ããŸããïŒ
ããŒã¿ããŒã¹ïŒmongodbïŒã«POSTãããšãã¢ã€ãã ã¯ã_idããååŸããŸãããããreduxç¶æ
ã«ããŸãã POSTãªã¯ãšã¹ãã®ã³ãŒã«ããã¯ãšããŠãã£ã¹ããããé
眮ããå¿
èŠããããŸããïŒ
ããããšãããããŸãã
ã¬ãã¥ãŒãµãŒèªäœã®å éšãããµãŒããŒAPIPOSTãªã¯ãšã¹ããé 眮ã§ããŸããïŒ
絶察ã«ããã§ã¯ãããŸããããã¬ãã¥ãŒãµãŒã¯å¯äœçšã®ãªãçŽç²é¢æ°ã§ãªããã°ãªããŸããã
ããŒã¿ããŒã¹ïŒmongodbïŒã«POSTãããšãã¢ã€ãã ã¯ã_idããååŸããŸãããããreduxç¶æ ã«ããŸãã POSTãªã¯ãšã¹ãã®ã³ãŒã«ããã¯ãšããŠãã£ã¹ããããé 眮ããå¿ èŠããããŸããïŒ
ã¯ãã
ãã®ã¬ã€ããåç §ããŠãã ããïŒ http ïŒ
ãã³ã«æè¬ããŸããããŸããããŸãïŒyïŒ
ãµãŒããŒã¬ã³ããªã³ã°ã䜿çšããŠããå ŽåãçŸåšã®ãŠãŒã¶ãŒããã°ã€ã³ããããšããŸãããã
ã¹ãã¢ããã®éåæãã§ãããã¹ãããããŠããµãŒããŒã§å®è¡ã§ããŸããïŒ
ãµãŒããŒã¬ã³ããªã³ã°ã䜿çšããŠããå Žåãããšãã°çŸåšã®ãŠãŒã¶ãŒããã°ã€ã³ãããå Žåãã¹ãã¢ããã®éåæãã§ãããã¹ãããããŠããµãŒããŒã§å®è¡ã§ããŸããïŒ
ãµãŒããŒäžã«ã¹ãã¢ãäœæããéåæã¢ã¯ã·ã§ã³ãçµäºããã®ãåŸ
ã£ãŠããã¬ã³ããªã³ã°ããããšãã§ããŸãã
http://rackt.github.io/redux/docs/recipes/ServerRendering.htmlãåç
§ããŠãã ãã
ç§ã¯ããããéèŠãªäœããèŠéããŠããŸãããã¢ããªã®åæåäžã«ãã¹ãŠã®ã¢ã¯ã·ã§ã³ã¯ãªãšãŒã¿ãŒã«éšåçã«ãã£ã¹ããããé©çšããªãã®ã¯ãªãã§ããïŒ ããããã°ããã£ã¹ããããžã®åç §ãååŸããæ¹æ³ãæ°ã«ããã«ãã©ãããã§ãé»è©±ããããããšãã§ããŸãã
@mpoisot ïŒã¢ããªã®èµ·åæã«ãæœåšçãªã¢ã¯ã·ã§ã³ã¯ãªãšãŒã¿ãŒããã¹ãŠç¥ããã€ã³ããŒããããã€ã³ãããé åžããå¿ èŠãããããã§ãã ãšããããããã¯ã³ãŒãåå²ã®ãããªç¶æ³ã§ã¯åœ¹ã«ç«ã¡ãŸããã
@markerikson createStore
åŒã³åºãããšãã§ããããã«ã appinitã§ãã¹ãŠã®ã¬ãã¥ãŒãµãŒãç¥ã£ãŠããå¿
èŠããããŸãã 次ã®è¡ã§bindAllActionCreators(store.dispatch)
ãåŒã³åºãããšãæ³åããŠããŸãã
確ãã«ãå®éã«äœ¿çšããããããããã«å€ãã®ã³ãŒããåã蟌ãããšã«ãªããŸãã ãããããããæžå¿µäºé ã§ããå Žåã¯ããã®ããã«ããªãã§ãã ããã ãŸãã¯ãã¬ãã¥ãŒãµãŒã»ããïŒãªãã¥ãŒãµãŒ+ã¢ã¯ã·ã§ã³ã¯ãªãšãŒã¿ãŒ+ã»ã¬ã¯ã¿ãŒïŒãããå°ãããããçŠç¹ãçµã£ããã³ãã«ã«åå²ããŸãã ãŸãã¯ãäžéšã®ã¢ã¯ã·ã§ã³ã¯ãªãšãŒã¿ãŒã®ã¿ããã€ã³ãããŸãã
ãããè¡ãããšã§ãããã©ãŒãã³ã¹ãå€§å¹ ã«äœäžããããšã¯ãããŸããïŒ ãããšããããã¯ã©ãããããããå°çãã³ãŒãã£ã³ã°ããããã®ã²ã©ãéããã©ããŸããïŒ
@mpoisot ïŒç§ãèããããšãã§ããããã©ãŒãã³ã¹ã®åé¡ã¯å®éã«ã¯ãããŸããã ãã ãããã¹ãæ§ãšåå©çšæ§ã¯å¶éãããŸãã
connect
ãé©åã«äœ¿çšãããšãäŸåæ§æ³šå
¥ã®ã¢ãããŒãã軜ããªããŸãã ããã¬ãŒã³ãã³ã³ããŒãã³ãã¯ãå°éå
·ãšããŠäœããã®é¢æ°ãäžããããŠããããšãç¥ã£ãŠããã ãã§ãããå¿
èŠã«å¿ããŠãã®é¢æ°ãåŒã³åºãå¿
èŠããããŸãã 芪ã³ã³ããŒãã³ãããçŽæ¥æž¡ãããã³ãŒã«ããã¯ãªã®ããäºåã«ãã€ã³ããããã¢ã¯ã·ã§ã³ã¯ãªãšãŒã¿ãŒãªã®ãã¯ãå®éã«ã¯é¢ä¿ãããŸããã ã€ãŸããã³ã³ããŒãã³ãã¯ç°¡åãªæ¹æ³ã§åå©çšã§ãããã¹ããã¯ããã«ç°¡åã«ãªããŸãã äžæ¹ãã¹ãã¢ãçŽæ¥ã€ã³ããŒããããããªããšãè¡ããšãã³ã³ããŒãã³ãããã®ç¹å®ã®ã¹ãã¢ã€ã³ã¹ã¿ã³ã¹ãšå®è£
ã«çµã³ä»ãããããããæšå¥šãããŸããïŒRedux FAQïŒhttpïŒ//redux.js.org/docs/faq/ã«ããïŒã StoreSetup.htmlïŒstore-setup-multiple-storesïŒã ããªããæ£ãã質åããŠããããšãç解ããŠããã°ãããã¯åºæ¬çã«ã¹ãã¢ãçŽæ¥ã€ã³ããŒãããŠåç
§ããã®ãšåãç¶æ³ã§ãã
è¯ãç¹ã§ãããã¢ã¯ã·ã§ã³ã¯ãªãšãŒã¿ãŒã«ãã£ã¹ããããéšåçã«é©çšããããšã¯ãã¹ãã¢ãã·ã³ã°ã«ãã³ãšããŠã€ã³ããŒãããããšãšåãã§ãã ç§ã¯ãã®çç±ãåŠãŒããšããŸãããããã³ã»ã¢ãã©ã¢ãããµãŒããŒãµã€ãã¬ã³ããªã³ã°ïŒã»ãšãã©ã®äººã¯æ±ºããŠäœ¿çšããªãïŒã®ããã«ã·ã³ã°ã«ãã³ã¹ãã¢ãå«ãããŠãããšèšã£ãå Žæãããã€ãèŠã€ããŸããããå¥åŠãªããšã«åœŒã¯ãã¹ãïŒèª°ããè¡ãã¹ãããå°ãªããšãããªãããšã«ã€ããŠæ°åãæªãïŒã
確ãã«ããã¹ãçšã«ããŸããŸãªã¹ãã¢ã§ã¹ãã¢ãæŽæ°ã§ããã¹ãã¢ã·ã³ã°ã«ãã³ãªããžã§ã¯ããäœæã§ãããšæããŸããïŒ ã¹ãã¢èªäœãçŽæ¥ãšã¯ã¹ããŒããã代ããã«ã StoreSingleton.getStore()
ãä»ããŠãããè¿ãã StoreSingleton.setStore()
ä»ããŠçŸåšã®ã¹ãã¢ãå€æŽããŸãã ãããã£ãŠããã¹ãã«é¢ããŠã¯ãã¹ãã¢ã®åäžã®ã€ã³ã¹ã¿ã³ã¹ã«çžãããããšã¯ãããŸããã ãã ãããããã¹ã¬ãããµãŒããŒç°å¢ã§æ©èœããªãçç±ã¯ããããŸãã
@mpoisotãããã€ããŒ/ã³ãã¯ãã®æ©èœã«ã€ããŠèª¬æããŸããã ;ïŒ
å€ãã®å Žåãããæ¥ãã£ã¹ãããïŒãŸãã¯äºåã«ãã€ã³ããããã¢ã¯ã·ã§ã³ïŒãå¿ èŠãªããã ãã³ã³ããŒãã³ãããããŸãã ã ããç§ã¯åœŒãæ¥ç¶ã§å ãããæ¥ç¶ãããŠããã³ã³ããŒãã³ããå«ããã®ããäœããæž¡ããããããŸããã ã°ããŒãã«ã«ã¢ã¯ã»ã¹å¯èœãªãã£ã¹ããããåé¿ããããã ãã«ãå€ãã®é ç·ãå°éå ·ã®ééã®ããã«æããããšããããããŸãã mapStateToPropsïŒïŒã®å ŽåãProvider / connectïŒïŒã䜿çšãããšããã©ãŒãã³ã¹ãå€§å¹ ã«åäžããŸãã ãŸãããã ã³ã³ããŒãã³ããåå©çšããå Žåã¯ããã£ã¹ãããããžãã¯ãé«æ¬¡ã³ã³ããŒãã³ãã«æœåºããã®ãçã«ããªã£ãŠããŸãã
ããããç§ã¯ãã®ã·ããªãªãäœåºŠããããããã®ã§ããªãã ãããšæããŸãã ãããŠããã®çãã¯ããã€ããµãŒããŒãµã€ãã¬ã³ããªã³ã°ãå®è¡ã§ããããã«ãããããã®ããã§ãã ïŒç§ãééã£ãŠããå Žåã¯ç§ãèšæ£ããŠãã ããïŒã
çŸåšã connect()
ã¯Provider
ã®ã¹ãã¢ããdispatch
ã¡ãœãããæäŸããã ãã§ãããå°æ¥çã«ã¯å€æŽãããå¯èœæ§ããããŸãã ããšãã°ãéçºããŒã«ãšã®çµ±åãªã©ã®è¿œå æ©èœãè¿œå ããŠãã©ã®Reactã³ã³ããŒãã³ããå®è¡äžã®ã¢ã¯ã·ã§ã³ã®ãœãŒã¹ã§ãã£ãããéç¥ããå ŽåããããŸãã ãŸãã¯ã誰ããå¥ã®æ¹æ³ã§ã¹ãã¢ãæ¡åŒµããã³ã³ããŒãã³ããäœæããå ŽåããããŸããããã¯ãã¹ãã¢ãã³ã³ããã¹ãã«åãããŠæ¡åŒµãããã®æ¡åŒµã¹ãã¢ãã³ã³ããŒãã³ãããªãŒã«æž¡ãããšã«ãã£ãŠè¡ããŸãã ã¢ã¯ã·ã§ã³ã¯ãªãšãŒã¿ãŒãã·ã³ã°ã«ãã³ã¹ãã¢ã«ãã€ã³ãããå Žåãééã£ãdispatch
åŒã³åºãå¯èœæ§ããããŸãã
ã¯ããç§ãèŠããã³ã³ããŒãã³ã/ã«ãã»ã«åãããç¶æ
ãã®å®éšã®ããã€ãã¯ããŸãã«ãã®ã¢ãããŒãã§æ©èœããŸãã ãã®ã¢ã€ãã¢ã®æ°ã®å©ããç¹ã¯ãã©ãããŒã³ã³ããŒãã³ãããŸã this.context.store
ãdispatch
ãå¿
èŠã«å¿ããŠãã®
ç§ã¯ããã®äž¡åŽã«ããŸã-
ç§ã®ãã©ã€ããªã¢ããªã±ãŒã·ã§ã³ã§ã¯ãã¹ãã¢ãã·ã³ã°ã«ãã³ãšããŠæ±ããã°ããŒãã«ã«å©çšå¯èœãªgetStore()
é¢æ°ã䜿çšããŸãã ãµãŒããŒåŽã®ã¬ã³ããªã³ã°ã¯äœ¿çšããŸããã mapStateToProps
åŒãç¶ãProvider
ãšconnect
ã䜿çšããŸãã
äžæ¹ãã³ã³ããŒãã³ãéå±€å
ã®ããŸããŸãªå Žæã§ã¹ãã¢ïŒ @jimbollaã@markeriksonãªã©ïŒãã©ããããå®éšçãªã¢ããªãäœæããŸããã dispatch
ãšgetState
äž¡æ¹ã§ã¢ããªå
šäœã§å€æŽããŸããã€ãŸããã¢ããªå
šäœã§ïŒ context
ãŸãã¯props
ãä»ããŠïŒé
ç·ããå¿
èŠããããã·ã³ã°ã«ãã³ã«ããããšã¯ã§ããŸããã
éæãããããšã«ããããŸãããã·ã³ã°ã«ãã³ã¹ãã¢ã®ãã®ã¯å®è¡å¯èœã ãšæããŸãããå人çã«ã¯ãã£ãããšé¢ããŠãããŸãã
ããã ããªãã¯ç¢ºãã«ã¹ãã¢ãã¢ã¯ã»ã·ãã«ãªã·ã³ã°ã«ãã³ãšããŠæ±ãããšãã§ããŸãããããã¯ããªããå¶éããæ £çšçãªãã®ãšã¯èŠãªããããããããããšã®æ¬åœã®å©ç¹ã¯èŠåœãããŸããã
ããããšããçŽ æŽããããã£ãŒãããã¯ã 誰ããã¹ãã¢ã©ããã³ã°ãæ«é²ãããªã³ã¯ãæçš¿ã§ããŸããïŒ
@mpoisot
ããã¯ã dispatch
ã©ããã³ã°ãã©ã®ããã«åœ¹ç«ã€ãã瀺ãDanã®ã³ã¡ã³ãã®1ã€ã§ãã
https://github.com/reactjs/redux/issues/822#issuecomment -145271384
åæ©ãäœã§ããããããããç解ããããã«ãã¹ã¬ããå šäœãèªãå¿ èŠããããããããŸããã
ç¹ã«ã dispatch
ãã©ã®ããã«ã©ãããããŠãããã«æ³šæããŠãã ããïŒåŒ·èª¿è¡šç€ºããŸããïŒã
åæ§ã®æ··ä¹±ã«çŽé¢ããŠããããããã®å€ãæçš¿ããã€ãžã£ãã¯ããŠç³ãèš³ãããŸãããæ¥ç¶ããã«ã¢ã¯ã·ã§ã³ããã£ã¹ãããããããšèããŠããŸãã
export default class App extends Component {
...
componentDidMount() {
//registering event listener
BackgroundGeolocation.on('location', this.onLocation, this.onError);
}
onLocation(location) {
//wishing to dispatch an action to update variable in store
}
render() {
return (
<Provider store={store}>
<AlertProvider>
<MainNavigator screenProps={{ isConnected: this.state.isConnected }} />
</AlertProvider>
</Provider>
);
}
}
ç§ãç解ããŠããããšãããã¹ãã¢ãæ§æããŠProvider
æž¡ãã ããªã®ã§ããã®ã³ã³ããŒãã³ãã®ã¹ãã¢ã«æ¥ç¶ã§ããªãå¯èœæ§ããããŸãã onLocation
ã€ãã³ãã§ã¢ã¯ã·ã§ã³ããã£ã¹ãããããã«ã¯ã©ãããã°ããã§ããïŒ
@isaaclem ïŒstore.dispatch(someAction)
çŽæ¥åŒã³åºãããšãã§ããŸãã
ãã1ã€ã®ãªãã·ã§ã³ã¯ãã³ã³ããŒãã³ãæ§é ãåæ§ç¯ããŠãäžéšã®ã³ã³ããŒãã³ãã<Provider>
å
éšã§ããã¯ã°ã©ãŠã³ãã®ãžãªãã±ãŒã·ã§ã³åäœãå®è¡ããæ¥ç¶ã§ããããã«ããããšã§ãã
æãåèã«ãªãã³ã¡ã³ã
dispatch
å°éå ·ãšããŠæåã§ãã®ã³ã³ããŒãã³ãã«æž¡ãããšãã§ããŸãã