Oi @jaredpalmer , comecei a trabalhar em um projeto usando seu projeto inicial. Ótimo trabalho!
Eu tenho uma pergunta sobre despachar ações redux nas interações do usuário (por exemplo, clique no botão). Minhas perguntas são mais sobre a sintaxe correta. No passado eu chamei o construtor e chamei a função bind assim:
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>
)
}
Eu acho que você tem um plug-in babel instalado que permite que você evite escrever o "extends React.Component" o tempo todo. Eu não consigo ver 'bindActionCreators' também.
Pergunta, como eu escreveria acima da maneira que poderia ser usado em seu projeto inicial?
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>
)
}
Parece que você não está usando connect
de react-redux
:
import { connect } de 'react-redux'
... seu componente ...
export default connect(mapStateToProps, actionCreators)(Calendar)
Fechando isso porque não está relacionado ao clichê. Porém, sugiro assistir aos cursos de Dan Abramov sobre Redux:
Confira também a API react-redux
para connect
: https://github.com/reactjs/react-redux/blob/master/docs/api.md#connectmapstatetoprops -mapdispatchtoprops-mergeprops-options
Comentários muito úteis
Parece que você não está usando
connect
dereact-redux
:import { connect } de 'react-redux'
... seu componente ...
export default connect(mapStateToProps, actionCreators)(Calendar)