Dva: рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдкреВрдЫреЗрдВ рдХрд┐ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдЬреАрд╡рди рдЪрдХреНрд░ рдХреА рдШрдЯрдирд╛рдПрдБ рдХрд╣рд╛рдБ рд▓рд┐рдЦреА рдЬрд╛рддреА рд╣реИрдВ?

рдХреЛ рдирд┐рд░реНрдорд┐рдд 16 рдЬрдире░ 2017  ┬╖  15рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: dvajs/dva

  1. рдХрдВрдкреЛрдиреЗрдВрдЯрд╡рд┐рд▓рдорд╛рдЙрдВрдЯ
  2. рдХрдВрдкреЛрдиреЗрдВрдЯрдбрд┐рдбрдорд╛рдЙрдВрдЯ

рдореИрдВрдиреЗ рдЕрднреА-рдЕрднреА dva рд╕реЗ рд╕рдВрдкрд░реНрдХ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд┐рдпрд╛ рд╣реИ, рдФрд░ рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдирд╣реАрдВ рдЬрд╛рдирддрд╛ рдХрд┐ рдЬреАрд╡рди рдЪрдХреНрд░ рдХреА рдШрдЯрдирд╛рдУрдВ рдХреЛ рдХреИрд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рдП рдЬреЛ рдореИрдВ dva рдореЗрдВ рдХрд░рддрд╛ рдерд╛ред рдХреНрдпрд╛ рдЖрдк рдПрдХ рдЙрджрд╛рд╣рд░рдг рджреЗ рд╕рдХрддреЗ рд╣реИрдВ?

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрджрд┐ рдШрдЯрдХреЛрдВ рдореЗрдВ рдШрдЯрдХ рдлрд╝рдВрдХреНрд╢рди рдХреЛ React.Component рдХреЛ рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрджрд▓ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЗрд╕рдХрд╛ рдХреНрдпрд╛ рдкреНрд░рднрд╛рд╡ рд╣реЛрдЧрд╛?

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рд╕рднреА 15 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдпрджрд┐ рдШрдЯрдХреЛрдВ рдореЗрдВ рдШрдЯрдХ рдлрд╝рдВрдХреНрд╢рди рдХреЛ React.Component рдХреЛ рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрджрд▓ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЗрд╕рдХрд╛ рдХреНрдпрд╛ рдкреНрд░рднрд╛рд╡ рд╣реЛрдЧрд╛?

рдХреЛрдИ рдкреНрд░рднрд╛рд╡ рдирд╣реАрдВред рдлрд┐рд░ рднреА рдкрд┐рдЫрд▓реА рдЖрджрдд рдХреЗ рдЕрдиреБрд╕рд╛рд░ рд▓рд┐рдЦреЗрдВ, рдФрд░ рдлрд┐рд░ рдбреЗрдЯрд╛ рд╕реНрддрд░ рдореЗрдВ dva рдЬреЛрдбрд╝реЗрдВред

рдлрд┐рд░ рдбреЗрдЯрд╛ рд▓реЗрдпрд░ рдореЗрдВ dva рдЬреЛрдбрд╝реЗрдВ??? рдХреИрд╕реЗ рдЬреБрдбрд╝реЗрдВ?
рдореБрдЭреЗ рдХрд▓ рд░рд╛рдд рд╣реА рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ dva+andMobile рдХреЗ рд╕рд╛рде рд╢реБрд░реБрдЖрдд рдХреИрд╕реЗ рдХрд░реЗрдВ,

рдЗрд╕ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдХреЛ рдкрдврд╝рдиреЗ рдФрд░ рд╕рдордЭрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП https://github.com/sorrycc/blog/issues/18 рдХрд╛ рдЕрдиреБрд╕рд░рдг

рдореИрдВ рдирд╣реАрдВ рдЧрдпрд╛, рдЗрд╕реЗ рдлрд┐рд░ рд╕реЗ рдкрдврд╝рд╛, рдФрд░ рдХреБрдЫ рдЬрд╛рдирдХрд╛рд░реА рднреА рдЦреЛрдЬреАред рдореБрдЦреНрдп рд╕рдорд╕реНрдпрд╛ redux рдХреА рд╕рдордЭ рд╣реИред
рдХрдВрдкреЛрдиреЗрдВрдЯрд╡рд┐рд▓рдорд╛рдЙрдВрдЯ () рдФрд░ рдХрдВрдкреЛрдиреЗрдВрдЯрдбрд┐рдбрдорд╛рдЙрдВрдЯ () рдХреА рд▓реЗрдЦрди рд╕реНрдерд┐рддрд┐ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд, рдХреНрдпрд╛ рдЖрдк рдореБрдЭреЗ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕рдВрдХреЗрдд рджреЗ рд╕рдХрддреЗ рд╣реИрдВ?

рдХреНрдпрд╛ рдХрдВрдкреЛрдиреЗрдВрдЯрд╡рд┐рд▓рдорд╛рдЙрдВрдЯ () рд░реВрдЯрд┐рдВрдЧ рдХреЗ рд╣реБрдХ рдкрд░ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИ?
рдХреНрдпрд╛ рдХрдВрдкреЛрдиреЗрдВрдЯрдбрд┐рдбрдорд╛рдЙрдВрдЯ () рдмрд╛рд╣рд░реА рдШрдЯрдХреЛрдВ рдХреЛ рд▓рд┐рдЦрддрд╛ рд╣реИ?

рд╡рд╣реА рд╕рд╡рд╛рд▓

@xttianma @CodeSuPrMan рдиреЗ рд╕реНрдЯреЗрдЯрд▓реЗрд╕ рдХрдВрдкреЛрдиреЗрдВрдЯ рдХреЛ рд░рд┐рдПрдХреНрдЯ рдореЗрдВ рдмрджрд▓ рджрд┐рдпрд╛ред рдХреЙрдореНрдкреЛрдиреЗрдВрдЯ
https://facebook.github.io/react/docs/components-and-props.html рджреЗрдЦреЗрдВ

рдЖрдк рдкреБрдирдГ рд░рдЪрдирд╛ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ

рд╕рд╛рджрд░,

рдирд┐рдХ рдЭреЗрдВрдЧ

рдореЛрдмрд╛рдЗрд▓: +86118918960666 (рдЪреАрди)
рд╡реАрдЪреИрдЯ: рдирд┐рдХ_рдЭреЗрдВрдЧ88
рдИ-рдореЗрд▓: [email protected]

18 рдЬрдирд╡рд░реА, 2017 рдкрд░ 4:16 рдмрдЬреЗ, CodeSuPrMan [email protected] рд▓рд┐рдЦрд╛ рд╣реИ:

рдпрд╣ рдореВрд▓ рд╕реНрдЯреЗрдЯрд▓реЗрд╕ рдШрдЯрдХ рд╣реИ
рдХреЙрдиреНрд╕реНрдЯ рд▓реЗрдлреНрдЯрдирд╡ рдмрд┐рдлреЛрд░ = ({рдореЗрдиреВ, рдбрд┐рд╕реНрдкреИрдЪ}) => {рдХреЙрдиреНрд╕реНрдЯ {рдореЛрдб, рдЖрдЗрдЯрдордЯреНрд░реА
}=props.menus; const constItemTree=ItemTree; const
рдирд╡рдореЗрдиреВ = рд▓реЛрдбрдореЗрдиреВ рдЯреНрд░реА (рдЖрдЗрдЯрдо рдЯреНрд░реА, рдЖрдЗрдЯрдо рдЯреНрд░реА); рдлрд╝рдВрдХреНрд╢рди рдЪреЗрдВрдЬрдореЛрдб (рдорд╛рди) {
рдбрд┐рд╕реНрдкреИрдЪ ({рдкреНрд░рдХрд╛рд░: 'рдореЗрдиреВ / рдЪреЗрдВрдЬрдореЛрдб', рдкреЗрд▓реЛрдб: {рдореЛрдб: рд╡реИрд▓реНрдпреВ? 'рд╡рд░реНрдЯрд┐рдХрд▓': 'рдЗрдирд▓рд╛рдЗрди',
рдЖрдЗрдЯрдордЯреНрд░реА:рдЖрдЗрдЯрдордЯреНрд░реА}}) ....}
рдореИрдВ рдЙрди рдШрдЯрдХреЛрдВ рдХреЛ рдкреИрдХреЗрдЬ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдЙрдЪреНрдЪ-рд╕реНрддрд░реАрдп рдШрдЯрдХреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдЬреАрд╡рди рдЪрдХреНрд░ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ (рдпрд╣ рдлрд╝рдВрдХреНрд╢рди рд╕рд╛рдорд╛рдиреНрдп рд╡рд┐рдзрд┐ рдореЗрдВ рдирд┐рдХрд╛рд▓рд╛ рдЬрд╛рдПрдЧрд╛, рдФрд░ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдЬреЛрдбрд╝реЗ рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рд╕рднреА рдЬреАрд╡рди рдЪрдХреНрд░ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдЗрд╕ рд╡рд┐рдзрд┐ рдХреЗ рд╕рд╛рде рдкреИрдХ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред ),
рдЗрд╕ рддрд░рд╣, рд╕рднреА рдмреБрдирд┐рдпрд╛рджреА рдШрдЯрдХ рдЕрднреА рднреА рд╕реНрдЯреЗрдЯрд▓реЗрд╕ рд╣реИрдВ рдФрд░ рдЬреАрд╡рди рдЪрдХреНрд░ рдХреА рдПрдХ рд╕рдорд╛рди рдкреИрдХреЗрдЬрд┐рдВрдЧ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ
рдлрд╝рдВрдХреНрд╢рди рд╡реЗрдкрд░рдХрдВрдкреЛрдиреЗрдВрдЯреНрд╕рд╕реНрдЯреИрдЯрд╕ ({рд░реЗрдлрд░реА}) {рд░рд┐рдЯрд░реНрди рдХрдВрдкреЛрдЬреНрдб рдХреЙрдореНрдкреЛрдиреЗрдВрдЯ => {
рд░рд┐рдЯрд░реНрди рдХреНрд▓рд╛рд╕ рд╡реИрдкрд░ React.Component {componentWillMount(){ рдХреЛ рдмрдврд╝рд╛рддрд╛ рд╣реИ
... (рдмрд╛рдж рдореЗрдВ рдирд┐рдХрд╛рд▓рд╛ рдЧрдпрд╛)} рдХрдВрдкреЛрдиреЗрдВрдЯрдбрд┐рдбрдорд╛рдЙрдВрдЯ () {... (рдмрд╛рдж рдореЗрдВ рдирд┐рдХрд╛рд▓рд╛ рдЧрдпрд╛)} рд░реЗрдВрдбрд░ () {рд╡рд╛рдкрд╕реА
}}}}

`LeftNav=ref=>wapperComponentsStatus({ref:ref})(LeftNavbefore);
рдпрд╣рд╛рдВ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рд░рд╛рдЬреНрдп рдФрд░ рдкреНрд░реЗрд╖рдг рдореЗрдВ рдкрд╛рд╕ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдореЙрдбрд▓ рд╕реЗ рдЬреБрдбрд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ
рдлрд╝рдВрдХреНрд╢рди mapStateToProps({menus}){
рд╡рд╛рдкрд╕реА {рдореЗрдиреВ};
}

рдирд┐рд░реНрдпрд╛рдд рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдХрдиреЗрдХреНрдЯ (mapStateToProps) (LeftNav); `

рд▓реЗрдХрд┐рди рдЗрд╕ рддрд░рд╣ рд╕реЗ рд▓рд┐рдЦрдирд╛ рдПрдХ рддреНрд░реБрдЯрд┐ рдХреА рд░рд┐рдкреЛрд░реНрдЯ рдХрд░реЗрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдФрд░ рд░рд┐рдбрдХреНрд╕ рдХреА рд╕рдордЭ рдмрд╣реБрдд рдЧрд╣рд░реА рдирд╣реАрдВ рд╣реИ, рдХреНрдпрд╛ рдореИрдВ рдкреВрдЫ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ рдХреНрдпрд╛ рдЖрдк рдореЗрд░реА рд╕реЛрдЪ рдХрд╛ рдкрд╛рд▓рди рдХрд░рддреЗ рд╣реИрдВ,
рд░реИрдкрд░рдХрдВрдкреЛрдиреЗрдВрдЯреНрд╕рд╕реНрдЯреИрдЯрд╕ рдХреЗ рдкреНрд░реЙрдкреНрд╕ рдХреЛ рд▓реЗрдлреНрдЯрдирд╡рдмреАрдлреЛрд░ рдХрдВрдкреЛрдиреЗрдВрдЯ (рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рд╕реНрдЯреЗрдЯрд╕ рдлрдВрдХреНрд╢рди рдкрд╛рд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП) рдФрд░ рд░реЗрдбрдХреНрд╕ рдореЗрдВ рдХреИрд╕реЗ рдкрд╛рд╕ рдХрд░реЗрдВ
рдХрдиреЗрдХреНрдЯ рдХреЗ рдмрд╛рдж рдкреНрд░рджрд╛рди рдХреА рдЧрдИ рд╕реНрдерд┐рддрд┐ рдФрд░ рдкреНрд░реЗрд╖рдг рднреА рдШрдЯрдХ рд▓реЗрдлреНрдЯрдирд╡рдмреАрдпрд░ рдХреЛ рдкрд╛рд╕ рдХрд░ рджрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред

-
рдЖрдк рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдиреЗ рдЯрд┐рдкреНрдкрдгреА рдХреА рдереАред
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рд╕реАрдзреЗ рдЙрддреНрддрд░ рджреЗрдВ, рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ
https://github.com/dvajs/dva/issues/506#issuecomment-273411035 , рдпрд╛ рдореНрдпреВрдЯ рдХрд░реЗрдВ
рд╕реВрддреНрд░
https://github.com/notifications/unsubscribe-auth/AAbhwGIy_VXKLgjZAouvWgWg0i3aF6cGks5rTcpmgaJpZM4LkSJ0
.

рдЖрдк рдкреБрдирд░реНрд╕рдВрдпреЛрдЬрди рдХреЛ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдкрд╣рд▓реЗ рдЬреАрд╡рди рдЪрдХреНрд░ рдХреЗ рдЪрд╛рд░реЛрдВ рдУрд░ рдПрдХ рд▓рдкреЗрдЯ рд╣реИ

рдЕрднреА рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рд╣реИред рдпрд╣ рд╕рдВрдкрд╛рджрди рдХрд╛ рдореВрд▓ рд╕реНрдЯреЗрдЯрд▓реЗрд╕ рдШрдЯрдХ рд╣реИред

const LeftNavbefore=({menus,dispatch})=>{
  const s=props;
  const{
    mode,ItemTree
  }=props.menus;
  const constItemTree=ItemTree;
  const NavMenu=LoadMenuTree(ItemTree,ItemTree);
  function changeMode(value){
    dispatch({
      type:'menus/changeMode',
      payload:{
        mode:value?'vertical':'inline',
        ItemTree:ItemTree
      }
    })
  }
  return(...)

рдореИрдВ рдЙрди рдШрдЯрдХреЛрдВ рдХреЛ рдкреИрдХреЗрдЬ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдЙрдЪреНрдЪ-рд╕реНрддрд░реАрдп рдШрдЯрдХреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдЬреАрд╡рди рдЪрдХреНрд░ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ (рдпрд╣ рдлрд╝рдВрдХреНрд╢рди рд╕рд╛рдорд╛рдиреНрдп рд╡рд┐рдзрд┐ рдореЗрдВ рдирд┐рдХрд╛рд▓рд╛ рдЬрд╛рдПрдЧрд╛, рдФрд░ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдЬреЛрдбрд╝реЗ рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рд╕рднреА рдЬреАрд╡рди рдЪрдХреНрд░ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд╕рд╛рде рдкреИрдХ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдпрд╣ рд╡рд┐рдзрд┐), рддрд╛рдХрд┐ рд╕рднреА рдмреБрдирд┐рдпрд╛рджреА рдШрдЯрдХ рдЕрднреА рднреА рд╕реНрдЯреЗрдЯрд▓реЗрд╕ рдмрдиреЗ рд░рд╣реЗрдВ, рдЬреАрд╡рди рдЪрдХреНрд░ рдХреА рдПрдХ рдПрдХреАрдХреГрдд рдкреИрдХреЗрдЬрд┐рдВрдЧ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ

function wapperComponentsStatus({ref}) {
return ComposedComponent=>{
  return class wapper extends React.Component {
    componentWillMount(){
        ...я╝Иф╣ЛхРОцПРхПЦхЗ║цЭея╝Й
    }
    componentDidMount(){
        ...я╝Иф╣ЛхРОцПРхПЦхЗ║цЭея╝Й
    }
    render(){
      return <ComposedComponent {...this.props} />
    }
  }
}
  }
  let LeftNav=ref=>wapperComponentsStatus({ref:ref})(LeftNavbefore);

  function mapStateToProps({menus}){
    return {menus};
  }

  export default connect(mapStateToProps)(LeftNav);

рд▓реЗрдХрд┐рди рдЗрд╕ рддрд░рд╣ рд╕реЗ рд▓рд┐рдЦрдирд╛ рдПрдХ рддреНрд░реБрдЯрд┐ рдХреА рд░рд┐рдкреЛрд░реНрдЯ рдХрд░реЗрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдФрд░ рд░рд┐рдбрдХреНрд╕ рдХреА рд╕рдордЭ рдмрд╣реБрдд рдЧрд╣рд░реА рдирд╣реАрдВ рд╣реИ, рдХреНрдпрд╛ рдореИрдВ рдкреВрдЫ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ рдХреНрдпрд╛ рдореИрдВ рдЕрдкрдиреА рд╕реЛрдЪ рдХрд╛ рдкрд╛рд▓рди рдХрд░рддрд╛ рд╣реВрдВ, рд░реИрдкрд░ рдХреЙрдореНрдкреЛрдиреЗрдВрдЯреНрд╕рд╕реНрдЯреИрдЯрд╕ рдХреЗ рдкреНрд░реЙрдкреНрд╕ рдХреЛ рд▓реЗрдлреНрдЯрдирд╡ рдмрд┐рдлреЛрд░ рдХрдВрдкреЛрдиреЗрдВрдЯ рдореЗрдВ рдХреИрд╕реЗ рдкрд╛рд╕ рдХрд┐рдпрд╛ рдЬрд╛рдП (рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рд╕реНрдЯреЗрдЯрд╕ рдлрдВрдХреНрд╢рди рдкрд╛рд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП) рдФрд░ Redux рдХрдиреЗрдХреНрдЯ рд╕реНрдЯреЗрдЯ рдХреЗ рдмрд╛рдж рдЗрд╕реЗ рдкреНрд░рджрд╛рди рдХрд░реЗрдВ рдФрд░ рдбрд┐рд╕реНрдкреИрдЪ рдХреЛ рднреА рд▓реЗрдлреНрдЯрдирд╡ рдореЗрдВ рдкрд╛рд╕ рдХрд┐рдпрд╛ рдЬрд╛рдПрдШрдЯрдХ рд╕реЗ рдкрд╣рд▓реЗ

рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдЗрд╕реЗ рд╕реНрд╡рдпрдВ рд╣реА рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ

@nickzheng рдзрдиреНрдпрд╡рд╛рдж, рдореБрдЭреЗ рджреЗрдЦрдиреЗ рджреЛ

рдореИрдВ рдЕрдВрдЧреНрд░реЗрдЬреА рдирд╣реАрдВ рдмреЛрд▓ рд╕рдХрддрд╛ред рдореИрдВ рдХреЗрд╡рд▓ рдПрдХ рдкрд░рд┐рдкрдХреНрд╡ рдпреЛрдЬрдирд╛ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред рд╡рд░реНрддрдорд╛рди рдкрджреНрдзрддрд┐ рд╣реИ

рд░рд╛рдЙрдЯрд░ рдХреА рднреВрдорд┐рдХрд╛ рдореЙрдбрд▓ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдФрд░ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИ, рдлрд┐рд░ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП React.Component рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ,
рдЙрдирдореЗрдВ рд╕реЗ: рдпрд╣.рдкреНрд░реЛрдк, рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рдФрд░ рдмрдВрдж, рдЕрд╕реНрдерд╛рдпреА рд╣реИ, рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реИ рдХрд┐ рд╡рд╣рд╛рдВ рдХреНрдпрд╛ рд╣реИред рдпрджрд┐ рдпрд╣ рдкреГрд╖реНрда рдирд╣реАрдВ рдмрджрд▓рддрд╛ рд╣реИ, рддреЛ рдЗрд╕реЗ рд╕реАрдзреЗ рдЕрд╕рд╛рдЗрди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

import React from 'react';
import { connect } from 'dva';
import { routerRedux } from 'dva/router';
import styles from './Page.css';
import { TabBar, Icon } from "antd-mobile";
import MyTabbar from './components/MyTabbar'

class Home extends React.Component {    
    render() {
        const {menu,selectedTab,dispatch}= this.props;
        const MyTabbarProps={ menu, selectedTab, dispatch }

        return (
            <div className="home">
                {this.props.children} 
                <MyTabbar {...MyTabbarProps} /> 
            </div>
        );
    }    
}

Home.propTypes = { 
    menu:React.PropTypes.array,
    selectedTab:React.PropTypes.number,
};

function mapStateToProps({home}) { return home }

export default connect(mapStateToProps)(Home);

рдкрдврд╝реЗрдВ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦреЗрдВ, рд▓реЗрдХрд┐рди рдЕрдВрдд рдореЗрдВ рдореИрдВрдиреЗ рдЗрд╕реЗ рдЦреБрдж рд▓рд┐рдЦрд╛

import React, { Component,PropTypes } from 'react';

  function wapperComponentsLifecycle({DidMount}) {
    return ComposedComponent=>{
      return class Wapper extends React.Component {
        componentWillMount(){

        }
        componentDidMount(){
          DidMount({props:this.props});
        }
        ...ш┐ШхПпф╗ец╖╗хКахИлчЪДчФЯхС╜хСицЬЯхЗ╜цХ░
        render(){
          return <ComposedComponent {...this.props} />
        }
      }
    }
  }


export default  wapperComponentsLifecycle;

рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕рднреА рдмреБрдирд┐рдпрд╛рджреА рдШрдЯрдХреЛрдВ рдпрд╛ рд╕реНрдЯреЗрдЯрд▓реЗрд╕ рдХреЛ рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХреЙрд▓ рд╣реИ, рдЗрд╕реЗ рд▓рдкреЗрдЯрдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдЗрд╕ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд╕рд╛рде рдЬреАрд╡рди рдЪрдХреНрд░ рдХреЛ рд▓рдкреЗрдЯрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

  function DidMount({props}) {

    const{ dispatch}=props;
    dispatch({
      type:'menus/query',
    })
  }

  let LeftNav=wapperComponentsLifecycle({DidMount})(LeftNavbefore);

рдбреАрд╡реАрдП рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХреЛ рдлрд┐рд░ рд╕реЗ рджреЗрдЦрддреЗ рд╣реБрдП, рдпрд╣ рдЕрдиреБрдЪреНрдЫреЗрдж рд╣реИ:

цЙАф╗ехЬи dva ф╕ня╝МщАЪх╕╕щЬАшжБ connect ModelчЪДч╗Дф╗╢щГ╜цШп Route Componentsя╝Мч╗Дч╗ЗхЬи/routes/чЫох╜Хф╕Ля╝МшАМ/components/чЫох╜Хф╕ЛхИЩцШпч║пч╗Дф╗╢я╝ИPresentational Componentsя╝Й

рдпрд╣рд╛рдВ рд▓рд┐рдВрдХ рдХрд░реЗрдВ

рдЗрд╕ рдорд╛рд░реНрдЧ рдХреЗ рд▓рд┐рдП, рдореБрдЭреЗ рдПрдХ рд╕рдордЭ рд╣реИред рд░рд╛рдЙрдЯрд░ рд░реВрдЯ рдШрдЯрдХ рд▓рд┐рдЦрддрд╛ рд╣реИ, рдЬреЛ рдбреЗрдЯрд╛/рдШрдЯрдХ рдФрд░ рдЕрдзрд┐рдХ рдПрдХрддреНрд░ рдХрд░рддрд╛ рд╣реИ ..., рдФрд░ рдШрдЯрдХ рд╢реБрджреНрдз рдХрд╛рд░реНрдпрд╛рддреНрдордХ рдШрдЯрдХ рд╣реЛрддреЗ рд╣реИрдВ, рдлрд┐рд░ рд╢реБрджреНрдз рдШрдЯрдХ, рдХреЛрдИ рдЬреАрд╡рди рдЪрдХреНрд░ рдШрдЯрдирд╛ рдирд╣реАрдВред

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

zhuangtq picture zhuangtq  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

yunfeit picture yunfeit  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

sorrycc picture sorrycc  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

mclouvem picture mclouvem  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

seamys picture seamys  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ