ããã¥ã¡ã³ããèªãã§Reduxãç解ããå®éã®äŸãå€æŽããããšããå§ããŠããŸãã ç§ã®å ŽåãGitHub HTTP APIåŒã³åºããèªåã®ãã®ãšäº€æãããªããžããªãšãŠãŒã¶ãŒã®æŠå¿µãç°å¢å ã®é¡äŒŒã®æŠå¿µãšäº€æããŸããã ãããŸã§ã®ãšãããããŸãéãã¯ãªãã¯ãã§ãããïŒ
ãããç§ãåé¡ã«ã¶ã€ãã£ãŠãããšããã§ãïŒ
APIåŒã³åºãã¯æåããå¿çJSONã¯ãã£ã¡ã«ã±ãŒã¹ã«å
¥ããããŠæ£èŠåãããŸãããAPIãªã¯ãšã¹ããæ£åžžã«çºçããåŸãã³ã³ããŒãã³ãã¯åã¬ã³ããªã³ã°ãããŸããã USER_REQUEST
ããã£ã¹ãããããããŠãŒã¶ãŒã³ã³ããŒãã³ããæŽæ°ãããŠãLoading ...ããšè¡šç€ºãããçŽåŸã«ã USER_SUCCESS
ããã£ã¹ãããããã次ã®ç¶æ
ã«ã¯å
¥åãããentities
ããŒãå«ãŸããŸãã
ããã¯åé¡ãããã«ãŠã§ã¢ã«ããããšãæå³ããŸãããïŒ ã¢ã¯ã·ã§ã³ã®ãšã³ãã£ãã£ãã¹ãã¢ã«ä¿åããå¿ èŠããããã³ã³ããŒãã³ãã¯å€æŽãç£èŠããŠåã¬ã³ããªã³ã°ããå¿ èŠããããŸããã
å®éã®äŸã§ã¯ãæ£åžžã«ååŸããã³æ£èŠåãããããŒã¿ã_å®éã«_ã¹ãã¢ã«é 眮ãããŸããïŒ æ£èŠåãããŠããå Žæã¯ããããŸãããæ£èŠåã®çµæãã¹ãã¢ã«é ä¿¡ãããŠããå Žæã¯ããããŸããã
æ¬åœã«ããããšãïŒ
ã¬ãã¥ãŒãµãŒã§ã®ã¢ã¯ã·ã§ã³ã®åŠççµæãä»ããŠãã¹ãã¢ã§ããŒã¿ãèšå®/æŽæ°/åé€ãããŸãã ã¬ãã¥ãŒãµãŒã¯ãã¢ããªã®ã¹ã©ã€ã¹ã®çŸåšã®ç¶æ ãåãåããæ°ããç¶æ ãåãæ»ãããšãæåŸ ããŸãã ã³ã³ããŒãã³ããåã¬ã³ããªã³ã°ãããªãå¯èœæ§ãããæãäžè¬çãªçç±ã®1ã€ã¯ãå¿ èŠãªå€æŽãå ããç¶æ ã®æ°ããã³ããŒãè¿ãã®ã§ã¯ãªããã¬ãã¥ãŒãµãŒã®æ¢åã®ç¶æ ãå€æŽããŠããããšã§ãïŒãã©ãã«ã·ã¥ãŒãã£ã³ã°ã®ã»ã¯ã·ã§ã³ã確èªããŠãã ããïŒã æ¢åã®ç¶æ ãçŽæ¥å€æŽãããšãReduxã¯ç¶æ ã®éããæ€åºãããã¹ãã¢ãå€æŽãããããšãã³ã³ããŒãã³ãã«éç¥ããŸããã
ã ããç§ã¯ééããªãããªãã®ã¬ãã¥ãŒãµãŒããã§ãã¯ããŠãããªããæ¢åã®ç¶æ ãå€ããŠããªãããšã確èªããããšæããŸãã ã圹ã«ç«ãŠã°å¹žãã§ãã
äœ@ernieturnerã«å ããŠããããšã確èªããŠãã ããããšè¿°ã¹mapStateToProps
ããªãã®äžã®é¢æ°connect(mapStateToProps)(YourConnectedComponent)
ïŒãã®å Žåã«ã¯ãé¢é£ããç¶æ
ããããããé¢æ°entities
é£çµæåããªã¹ãã³ã°ã«ãªãããã«ïŒç¶æ
ã®ãã®ã¹ã©ã€ã¹ã«ã
ãŸãã connect()
ã¯æµ
ãæ¯èŒãè¡ãããšã«æ³šæããŠãã ããïŒ //github.com/rackt/react-redux/blob/d5bf492ee35ad1be8ffd5fa6be689cd74df3b41e/src/components/createConnect.js#L91
æ¥ç¶ç¶æ ã®åœ¢ç¶ãå€åããŠããªããããæŽæ°ãè¡ããªããšæ³å®ããŠããå¯èœæ§ããããŸãã
ãããããã£ãïŒ mapStateToProps
ã¯ç¶æ
ãããªããžã§ã¯ããæœåºããããšããŸããããæ£ããããŒãæå®ããŠããŸããã§ããã entities.users[login]
ãæœåºãã代ããã«ã entities.users[id]
ã entities.users
ãªããžã§ã¯ãã¯login
æååã«ãã£ãŠããŒèšå®ãããŠãããããæ°å€ã®id
ãèŠã€ãããªãã£ãå Žåãå°éå
·ã¯å®éã«ã¯å€æŽãããªãã£ããããåã¬ã³ããªã³ã°ã¯å¿
èŠãããŸããã§ããã
å©ããŠãããŠããããšãïŒ ãææ°ããããããŸããããããããé¡ãããããŸãã
@timdorr
ããã¯ã°ãããŠããŸãã connect()
æ·±ãå€æŽã匷å¶çã«ãã§ãã¯ãããæ¹æ³ã¯ïŒ ãã以å€ã®å Žåã¯ãç¶æ
ã®ããæ·±ãã¬ãã«ããšã«æ°åã®ã³ã³ããã³ã³ããŒãã³ããäœæããå¿
èŠããããŸãã æ£åžžã§ã¯ãããŸãã
é©åºŠãªãµã€ãºã®ã¢ããªã«ã¯ã絶察ã«å€ãã®æ¥ç¶ã³ã³ããŒãã³ããå¿ èŠã§ãã ãããã¬ãã«ã«æ¥ç¶ãããã³ã³ããŒãã³ãã1ã€ãããªãå Žåã¯ãç¶æ ãå€åãããã³ã«ãã¢ããªã®å€§éšåãäžå¿ èŠã«åã¬ã³ããªã³ã°ããããšã«ãªããŸãã ãŸããreact-reduxã®äž»èŠãªæé©åã®1ã€ãåé¿ã§ããŸããããã¯ããµãã¹ã¯ã©ã€ãããŠããç¶æ ãå€æŽãããå Žåã«ã®ã¿åã¬ã³ããªã³ã°ããããšã§ãã
ç¶æ ã®è€éãªã¯ãšãªãè©äŸ¡ããå¿ èŠãããå Žåã¯ãåéžæã䜿çšããŠé«éåããŸãã
@timdorr @wzup
æ·±ãæ¯èŒã®åé¡ã解決ããããã«ãããªãŒã®äžäœã®å Žæã§æ¥ç¶ããå¿ èŠã¯å³å¯ã«ã¯ãªãããšãæ確ã«ããããšã圹ç«ã€å ŽåããããŸãã
ã³ã³ããŒãã³ãããªãŒã®ããäœãå Žæã§æ¥ç¶ããããšã¯ç¢ºãã«_ããã©ãŒãã³ã¹_ã«åœ¹ç«ã€ãããããŸããããããã¯æ·±ãæ¯èŒã®åé¡ã«å¯Ÿããåºæ¬çãªè§£æ±ºçã§ã¯ãããŸããã æ·±ãæ¯èŒã®åé¡ã®è§£æ±ºçã¯ãã¬ãã¥ãŒãµãŒãç¶æ ãäžå€ã«æŽæ°ããããšã§ãããã®ãããããæ·±ãç¶æ ããã€å€æŽãããããç¥ãã«ã¯ãæµ ãæ¯èŒã§ååã§ãã
èšãæãããšããããã¬ãã«ã®ã³ã³ããŒãã³ãããã¹ãããã倧ããªç¶æ ã«æ¥ç¶ãããšãã¬ãã¥ãŒãµãŒãæ¢åã®ç¶æ ãªããžã§ã¯ããå€æŽããã«æ°ããç¶æ ãè¿ãéãã_æµ ãæ¯èŒã§ã_åé¡ãªãæ©èœããŸãã
@nawãã®ãã³ããããããšãã ããã«åºã¥ããŠããã®åé¡ãçºçããå Žæã«æ°ããã¬ãã¥ãŒãµãŒãè¿œå ããããšã«ãªããŸããã
const reducers = combineReducers({
//...bunch of reducers which always return objects of 3 or 4 properties that change sometimes but
// the shape stays the same
dataVersion: (state = Symbol(), action = {}) => {
switch (action.type) {
case SAME_ACTION_AS_THE_ONE_THAT_UPDATES_A_COMPLEX_PROPERTY:
case ANOTHER_ACTION_THAT_ALSO_UPDATES_A_COMPLEX_PROPERTY:
return Symbol():
default:
return state;
}
}
})
ããããããã¯ãŸã ç§ã«ã¯å¥åŠã«æããŸãã ç§ãè¡ãã¬ãã¥ãŒãµãŒãæã£ãŠããå ŽåïŒ
switch (action.type) {
case UPDATE_THIS:
return {a: action.a, b: action.b, c: action.c};
default:
return state;
}
ããŸããŸåã®ç¶æ
ãšåã圢ç¶ã§ãããæ°ããåæåããããªããžã§ã¯ããè¿ããšããäºå®ã¯ã previousState !== newState
ãããªã¬ãŒããã®ã«ååãªã¯ãã§ãã æ¯åäžå€ã®ããŒã¿ãè¿ãããšã«ãªã£ãŠãããšããããã¢ã€ãã³ãã£ãã£ã ãã§ãªãã圢ç¶ã®æµ
ãæ¯èŒãè¡ãæ¹ãéå¹ççã§ããããã«æãããŸãã ïŒãããReduxãå®éã«è¡ã£ãŠããããšã§ãããšä»®å®ããŸããã€ãŸãã Symbol
åé¿çãæ©èœãããšããäºå®ããããããèµ·ãã£ãŠãããšæããŸãïŒ
ãã®ç¹å®ã®ã±ãŒã¹ã§ã¯ãã³ã³ããã³ã³ããŒãã³ããè¿œå ããŠããåé¡ã¯è§£æ±ºããŸããã æ®å¿µãªãããããã¯ç§ãããã§æ±ã£ãŠããç§ã®äŒç€Ÿã®ã¯ããŒãºããœãŒã¹ã®ãã®ã§ãããããæ確ã«ããããã«githubãããžã§ã¯ãå šäœã«ãªã³ã¯ããããšã¯ã§ããŸããã
@ZacqaryçŸåšã®ç¶æ ãšåã®ç¶æ ã®æ¯èŒã¯ãå³å¯ã«çããïŒ===ïŒã§è¡ãããŸãã statePropsïŒmapStateToPropsã®çµæïŒã®æ¯èŒã¯ãshallowequalã䜿çšããŠè¡ãããŸãã
@Zacqary
mapStateToProps
ã¯ãã¹ãã¢ã«ã¢ã¯ã»ã¹ããããšã«ãããæ¥ç¶ãããã³ã³ããŒãã³ãã®ããŒã¿ããã¢ã»ã³ãã«ãããŸãã
mapStateToProps
ã¯ãã¹ãã¢ããããŸããŸãªããŒã¹ãåŒãåºããããããæ°ããstateProps
ãªããžã§ã¯ãã®ããŒã«å²ãåœãŠãŸãã
çµæã®stateProps
ãªããžã§ã¯ãã¯æ¯åæ°ããããïŒãã®IDãå€æŽãããããïŒã stateProps
ãªããžã§ã¯ãèªäœã®ãªããžã§ã¯ãIDãæ¯èŒããããšã¯ã§ããŸãã--- 1ã€äžããå¿
èŠããããŸãã©ãã§åå€ã®ãªããžã§ã¯ãèå¥ã¬ãã«ãšãã§ãã¯shallowEqual
@jimbollaãèšã£ãããã«ãå Žã«åºãŠããŸãã
éåžžãåé¡ã¯ãç¶æ
ã®äžéšã®ãªããžã§ã¯ãIDãå€æŽãããªãããã«ã¬ãã¥ãŒãµãŒãäœæãããã®äžã«ãã¹ããããå±æ§ãå€æŽãããå Žåã«çºçããŸãã ããã¯ãæ°ããç¶æ
ãäžå€ã«è¿ãã®ã§ã¯ãªããç¶æ
ãå€æŽããããšã§ããããã«ããã react-redux
ã¯ãå®éã«ã¯äœããå€æŽããããšãã«ãäœãå€æŽãããŠããªããšèŠãªããŸãã
ããŸããŸåã®ç¶æ ãšåã圢ç¶ã§ãããæ°ããåæåããããªããžã§ã¯ããè¿ããšããäºå®ã¯ãpreviousStateïŒ== newStateãããªã¬ãŒããã®ã«ååãªã¯ãã§ãã
ç¶æ
ã®ã¹ã©ã€ã¹ã«å¯ŸããŠæ°ãããªããžã§ã¯ããè¿ãã mapStateToProps
ããã®ç¶æ
ã®ã¹ã©ã€ã¹ããã®ããŒã®1ã€ã®å€ãšããŠäœ¿çšããå Žåã react-redux
ã¯ããªããžã§ã¯ãIDãå€æŽãããããšã確èªããŸããåã¬ã³ããªã³ã°ã劚ããªãã§ãã ããã
æåŸ
ã©ããã«æ©èœããªãç¹å®ã®äœãããããŸããïŒ Symbol
åé¿çã®æå³ãããããããŸããã
å°éå
·ãç¶æ¿ããããã«ãè¿œå ã®ã³ã³ããŒãã³ããåã«connected()
ã³ã³ããŒãã³ãã«ç§»åããå¿
èŠããããã©ãããæ€èšãã䟡å€ããããŸãã 2ã€ã®ã³ã³ããŒãã³ããconnect()
ããããšããŠãã®åé¡ã«å°éããŸããããããã¯äžå¿
èŠãªè€éãã§ããã
@ernieturnerããã¯å€ãããšã¯ç¥ã£ãŠããŸããããã©ãã«ã·ã¥ãŒãã£ã³ã°ã»ã¯ã·ã§ã³ã®ãªã³ã¯ãæŽæ°ããããšããå§ãããŸãã
也æ¯
ç§ã¯ãã®åé¡ãæ±ããŠããŸããããæ£ç¢ºã§ã¯ãããŸããã
次ã®ããã«ãããããã£ãç¶æ
ã«é©çšããŸããã
constructor(props){
this.state = {
text: props.text
}
}
ãããŠãããã¯æ©èœããŠããŸããã§ããã ã ããç§ã¯ã®ãããªå°éå ·ããçŽæ¥äŸ¡å€ãé©çšããŸãã
{this.props.text}
ãããŠããã¯ããŸãæ©èœããŸã:)
@AlexanderKozhevinç§ãééã£ãŠããªãéããã³ã³ã¹ãã©ã¯ã¿ãŒã«super(props)
ããããŸããã
éåžžã super(props)
ãåŒã³åºãåã«ã this
ã䜿çšããããšã¯èš±å¯ãããŠããŸããã
@ cdubois-mhããã§ããã¡ã¢ã«æè¬ããŸãã
ã«ã¹ã¿ã ã¡ã€ãã®ã¢ããªã«ãŒããªãã¥ãŒãµãŒãäœæããŸãããããã®åé¡ãçºçããŸãã
ç¶æ
å
šäœã®ã³ããŒãè¿ã{...state}
ã«ãŒãã¬ãã¥ãŒãµãŒã®çµããã«ç§ãå©ããŸãã
@daedaliusãããã¬ãã¥ãŒãµãŒã®åäœæ¹æ³ã§ãã
ã¢ã¯ã·ã§ã³ãç¡é¢ä¿ã§ããå Žåã¯ç¶æ
ãè¿ãããæåŸ
ãããå€æŽãããå€ãå«ãç¶æ
ã®ã³ããŒãè¿ãå¿
èŠããããŸãã
ã³ããŒãè¿ããªãå Žåãreactã¯å€ãå€æŽãããããšãåžžã«æ€åºã§ãããšã¯éããŸããã
ïŒããšãã°ããã¹ãããããšã³ããªãå€æŽããå ŽåïŒ
ãã®ç¶æ ã確èªããŠãã ããïŒ
{
"clients": [
{ "name": "John", "cid": 4578 },
{ "name": "Alex", "cid": 5492 },
{ "name": "Bob", "cid": 254 }
]
}
ã¯ã©ã€ã¢ã³ãã®ååãå€æŽããããç¶æ ã®ã¯ããŒã³ãè¿ããªãå Žåã¯ãç¶æ ãå€æŽãããé åå ã®ãªããžã§ã¯ããå€æŽããŸããã
ãªããžã§ã¯ãèªäœã¯ä»¥åãšåãåç
§ãæã£ãŠããã®ã§ãreactã¯å€æŽãèŠéããŸãã
ã¯ããŒã³ãè¿ãããšã«ãããç¶æ
èªäœã®åç
§ãç°ãªãïŒæ°ãããªããžã§ã¯ãã§ããããïŒãreactãåã¬ã³ããªã³ã°ããã»ã¹å
šäœãéå§ããŸãã
ç§ãééã£ãŠããå Žåã¯ãç§ãèšæ£ããŠãã ããããããããã¯ç§ãã¬ãã¥ãŒãµãŒãæ©èœããããšãç解ããæ¹æ³ã§ãã
ã¯ãããã®éãã§ãã ãŸãã @ daedaliusã¯ã state
æµ
ãã³ããŒã_åžžã«_äœæããããªãããšã«æ³šæããŠãã ãããäœããå€æŽãããå Žåã«ã®ã¿äœæããå¿
èŠããããŸããããããªããšãã³ã³ããŒãã³ããäžèŠã«åã¬ã³ããªã³ã°ãããå¯èœæ§ããããŸãã
ã¢ããããŒãããã
<AfterConnect
_forceUpdate={Symbol()}
/>
@BrookShuihuaLeeããã¯ã©ãããæå³ã§ããïŒ ã³ãŒãã®äžéšã«ã€ããŠã®æ å ±ã説æãæäŸããŠããŸããã ããã¯äœãããããã®ãã®ãïŒ ãªããããçŸåšã®è°è«ã«é¢é£ããŠããã®ã§ããïŒ
@CedSharp _forceUpdate = {SymbolïŒïŒ}ãèšå®ãããšãshallowEqualé¢æ°ã¯falseãè¿ããŸãã
@BrookShuihuaLeeæåã®åçã«ãã®ãããªèª¬æãå«ããããšãã§ããã°çŽ æŽããããšæããŸããããããã°ã人ã ã¯ãããããããç解ã§ããã§ããã^^
@CedSharpãã
@BrookShuihuaLee ïŒããã¯æªãèãã®ããã§ãã ãªãããªãã¯ããããããã®ã§ããïŒ
@ BrookShuihuaLee ã ãŸãã
ç¶æ
ãå€åããªãã£ããšãã«ã¯ããŒã³ãè¿ããªãããšã«ãªã£ãŠããã®ã«ã¯çç±ããããŸãã ãœãªã¥ãŒã·ã§ã³ãå¿
èŠãšæãããæå¹ãªäŸãæäŸã§ããªãéããReduxã®åäœãåé¿ããããšã¯åŒ·ããå§ãããŸããã
@CedSharp
@markerikson
ã³ã³ããŒãã³ãAfterConnectã¯ãèšèšäžãé »ç¹ã«åã¬ã³ããªã³ã°ãããããã§ãã 芪ã³ã³ããŒãã³ããåã¬ã³ããªã³ã°ãããŠãããšãã«ãããäžåºŠåã¬ã³ããªã³ã°ããŠãåé¡ãããŸããã 芪ã³ã³ããŒãã³ãã§ãã¹ãŠã®èšç®ãè¡ããAfterConnectã«å€§éã®å°éå
·ãèšå®ããããããŸããã
@BrookShuihuaLee ãç³ãèš³ãããŸããããããªãã®ã³ã³ããŒãã³ãã¯çŸåšã®è°è«ã«ã©ã®ããã«é¢é£ããŠããŸããïŒ
ç§ãæ£ããç解ããŠããã°ãããªãã¯ããªãèªèº«ã®ã«ã¹ã¿ã ã³ã³ããŒãã³ãã«ã€ããŠè©±ããŠããã®ã§ããïŒ ForceUpdateã¯ãReactã®äžçã§ã¯éåžžã«åŒ·ãæšå¥šãããŠããªããã®ã§ããã解決çãšããŠã¯ãå§ãããŸããã
代ããã«ãç¶æ
以å€ã®å Žæã§å€åãæ¢ã芳å¯å¯èœãªãœãªã¥ãŒã·ã§ã³ã䜿çšã§ããŸããïŒ ç¶æ
ãå€æŽããã«ç¹å®ã®ã³ã³ããŒãã³ããåã¬ã³ããªã³ã°ããå¿
èŠãããçç±ã¯ããããŸããããåã¬ã³ããªã³ã°ããå¿
èŠãããçç±ãããã£ãŠããå Žåã¯ãmobxã®ãããªãã®ã䜿çšã§ããŸããïŒ
ïŒhttps://github.com/mobxjs/mobxïŒ
ç§ã¯ããªãã®è§£æ±ºçãäœã§ãããããããŠãªãããããã®ç¶æ³ã«é©çšãããã®ããç解ããããšããŠããŸãã
@CedSharp誰ããforceUpdateã䜿çšããå¿ èŠããããšããæå³ã§ã¯ãããŸããã ããããæšå¥šäºé ã¯1ã€ã§ãããéžæã¯å¥ã®ãã®ã§ãã Reactã¯ãéçºè åãã«ReactComponent.prototype.forceUpdateãä¿æããŸãã 人ã ã¯éžæãå¿ èŠãšããŠããŸãã
ç§ã¯å¥ã®éžæè¢ãäžããããšããŠããŸããã ãã¶ããããã¯æè¯ã®éžæã§ã¯ãããŸããã
æé©ã§ã¯ãããŸããããã¢ããªã®ç¶æ ãæ£ããæ§æããŠããªãããããã®åé¡ãçºçããŸããã åé¡ãåŒãèµ·ãããŠããç¶æ ã®ã¹ã©ã€ã¹ã®æµ ããã£ãŒã«ããæŽæ°ããã ãã§ãæµ ãæ¯èŒã®åé¡ãåé¿ããŸããã
case SOME_ACTION:
return {
...state,
ts: (new Date).getTime(),
};
IMOã¯è¯ã解決çã§ã¯ãããŸããããçŸåšãã€ã³ãäžã®äººïŒã€ãŸãã1æ¥ã®çµããã«ãªãªãŒã¹ããå¿ èŠãããïŒã«ãšã£ãŠã¯ãç°¡åãªä¿®æ£ã§ãããå¥ã®å Žæã§ã¬ã³ããªã³ã°ã匷å¶ããå¿ èŠã¯ãããŸããã
æ·±ããã¹ããããç¶æ ã§ãæµ ãæ¯èŒãæ©èœããããã«ãã³ãŒãããªãã¡ã¯ã¿ãªã³ã°ããå¿ èŠããããŸãã
ç¶æ ã¯äžå€ã§ãªããã°ãªããŸããã ã¬ãã¥ãŒãµãŒã§ç¶æ ããã£ãŒãã³ããŒããŠãããæ¥ç¶ã§ã®æµ ãæ¯èŒã§ååãã€å¹æçã§ãã
ç§ã®åé¡ã¯ããã®äžã«é
åãæã€ãªããžã§ã¯ããããããšã§ããã æµ
ãæ¯èŒã ã£ãã®ã§ãåé
åå
ã®ãªããžã§ã¯ãã«å°éããããšã¯ãããŸããã§ããã mapStateToPropsððŒã§lists:state.obj
ã§ã¯ãªãlist:state.obj.list
ã䜿çšããŠè§£æ±ºããŸãã
ãã®åé¡ãçºçããã°ããã§ãæåã®2ã€ã®è¿ä¿¡ãèªãã åŸãã¬ãã¥ãŒãµãŒã確èªãããšãããã¿ã€ããã¹ãããããšã«æ°ä»ããŸããã ããããã£ã®ååãå€æŽããŠINITIAL_STATEãæŽæ°ããŸãããããã®åé¡ã®ããã¢ã¯ã·ã§ã³ã«ãã£ãŠæŽæ°ãããŠããããŒãå€æŽããã®ãå¿ããŸããã
åºæ¬çã«ãã³ã³ããŒãã³ãã§äœ¿çšãããŠããªãã©ã³ãã ããŒãæŽæ°ããŠããã®ã§ããã®ã©ã³ãã ããŒãæŽæ°ããããšãã«åã¬ã³ããªã³ã°ãããªãããšã¯æããã§ãã
ã¬ãã¥ãŒãµãŒã®ã¿ã€ããã¹ã確èªããŠãã ããã :)
æãåèã«ãªãã³ã¡ã³ã
ã¬ãã¥ãŒãµãŒã§ã®ã¢ã¯ã·ã§ã³ã®åŠççµæãä»ããŠãã¹ãã¢ã§ããŒã¿ãèšå®/æŽæ°/åé€ãããŸãã ã¬ãã¥ãŒãµãŒã¯ãã¢ããªã®ã¹ã©ã€ã¹ã®çŸåšã®ç¶æ ãåãåããæ°ããç¶æ ãåãæ»ãããšãæåŸ ããŸãã ã³ã³ããŒãã³ããåã¬ã³ããªã³ã°ãããªãå¯èœæ§ãããæãäžè¬çãªçç±ã®1ã€ã¯ãå¿ èŠãªå€æŽãå ããç¶æ ã®æ°ããã³ããŒãè¿ãã®ã§ã¯ãªããã¬ãã¥ãŒãµãŒã®æ¢åã®ç¶æ ãå€æŽããŠããããšã§ãïŒãã©ãã«ã·ã¥ãŒãã£ã³ã°ã®ã»ã¯ã·ã§ã³ã確èªããŠãã ããïŒã æ¢åã®ç¶æ ãçŽæ¥å€æŽãããšãReduxã¯ç¶æ ã®éããæ€åºãããã¹ãã¢ãå€æŽãããããšãã³ã³ããŒãã³ãã«éç¥ããŸããã
ã ããç§ã¯ééããªãããªãã®ã¬ãã¥ãŒãµãŒããã§ãã¯ããŠãããªããæ¢åã®ç¶æ ãå€ããŠããªãããšã確èªããããšæããŸãã ã圹ã«ç«ãŠã°å¹žãã§ãã