Razzle: рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ - рдХреЙрд▓рд┐рдВрдЧ рд╕реБрдкрд░ рдФрд░ рдмрд╛рдЗрдВрдб

рдХреЛ рдирд┐рд░реНрдорд┐рдд 9 рдЬреВрди 2016  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: jaredpalmer/razzle

рд╣рд╛рдп @jaredpalmer , рдЕрдкрдиреЗ рд╕реНрдЯрд╛рд░реНрдЯрд░-рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдкрд░ рдХрд╛рдо рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджрд┐рдпрд╛ред рдорд╣рд╛рди рдХрд╛рдо!

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

function mapDispatchToProps(dispatch) {
    return bindActionCreators({
        importedAction,
    }, dispatch);
}
class Calendar extends React.Component {

constructor(props) {
   super(props);
   this.handleClick = this.handleClick.bind(this);
}

handleClick(programId) {
        this.props.importedAction()
        .then((response) => {
            do something with response
        });
    }
 }
....

render() {
 return (
   <a onClick={this.handleClick}>Click me to dispatch action</a>
)
}

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдПрдХ рдмреИрдмреЗрд▓-рдкреНрд▓рдЧрдЗрди рд╕реНрдерд╛рдкрд┐рдд рд╣реИ рдЬреЛ рдЖрдкрдХреЛ рд╣рд░ рд╕рдордп "рдПрдХреНрд╕рдЯреЗрдВрдбреНрд╕ рд░рд┐рдПрдХреНрдЯ.рдХрдВрдкреЛрдиреЗрдВрдЯ" рд▓рд┐рдЦрдиреЗ рд╕реЗ рдмрдЪрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдореИрдВ 'рдмрд╛рдЗрдВрдбрдПрдХреНрд╢рди рдХреНрд░рд┐рдПрдЯрд░реНрд╕' рднреА рдирд╣реАрдВ рджреЗрдЦ рд╕рдХрддрд╛ред

рдкреНрд░рд╢реНрди, рдореИрдВ рдКрдкрд░ рдХреИрд╕реЗ рд▓рд┐рдЦреВрдВрдЧрд╛ рдЬрд┐рд╕ рддрд░рд╣ рд╕реЗ рдЗрд╕реЗ рдЖрдкрдХреЗ рд╕реНрдЯрд╛рд░реНрдЯрд░ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ?

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

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдк connect рд╕реЗ react-redux рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд░рд╣реЗ рд╣реИрдВ:

'рд░рд┐рдПрдХреНрд╢рди-рд░реЗрдбрдХреНрд╕' рд╕реЗ рдЖрдпрд╛рдд {рдХрдиреЗрдХреНрдЯ}

... рдЖрдкрдХрд╛ рдШрдЯрдХ ...

рдирд┐рд░реНрдпрд╛рдд рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдХрдиреЗрдХреНрдЯ (mapStateToProps, actionCreators) (рдХреИрд▓реЗрдВрдбрд░)

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

function mapDispatchToProps(dispatch) {
    return bindActionCreators({
        importedAction,
    }, dispatch);
}
class Calendar extends React.Component {

handleClick(programId) {
        this.props.importedAction()
        .then((response) => {
            do something with response
        });
    }
 }
....

render() {
 return (
   <a onClick={(evt) => this.handleClick()}>Click me to dispatch action</a>
)
}

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдк connect рд╕реЗ react-redux рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд░рд╣реЗ рд╣реИрдВ:

'рд░рд┐рдПрдХреНрд╢рди-рд░реЗрдбрдХреНрд╕' рд╕реЗ рдЖрдпрд╛рдд {рдХрдиреЗрдХреНрдЯ}

... рдЖрдкрдХрд╛ рдШрдЯрдХ ...

рдирд┐рд░реНрдпрд╛рдд рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдХрдиреЗрдХреНрдЯ (mapStateToProps, actionCreators) (рдХреИрд▓реЗрдВрдбрд░)

рдЗрд╕реЗ рдмрдВрдж рдХрд░рдирд╛ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдмреЙрдпрд▓рд░рдкреНрд▓реЗрдЯ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдирд╣реАрдВ рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдореЗрд░рд╛ рд╕реБрдЭрд╛рд╡ рд╣реИ рдХрд┐ Redux рдкрд░ рдбреИрди рдЕрдмреНрд░рд╛рдореЛрд╡ рдХреЗ рдкрд╛рдареНрдпрдХреНрд░рдо рджреЗрдЦреЗрдВ:

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ react-redux API connect рдХреЗ рд▓рд┐рдП рджреЗрдЦреЗрдВ: https://github.com/reactjs/react-redux/blob/master/docs/api.md#connectmapstatetoprops -mapdispatchtoprops-mergeprops-options

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