Это дочерний компонент
import React, {Component} from 'react';
import {bindActionCreators} from 'redux';
import {connect} from 'react-redux';
import leftNavigation from '../actions/leftNavigation';
class AddBorrowers extends Component {
constructor(props){
super(props);
}
render(){
return(
<div className = {this.props.classValue + ' ' + 'borrowerForm'}
onClick = {() => {
this.props.sendActions('hide Add Borrrowers Form')
}
}>
</div>
)
}
}
это мой родительский контроллер BorrowersParent
class BorrowersParent extends Component {
constructor(props){
super(props);
}
sendActions (data) {
switch(data){
case 'hide Add Borrrowers Form':
console.info(this.props);
break;
}
}
render(){
return(
<div className = {this.props.borrowersParent}>
<AddBorrowers classValue = {this.props.addBorrowers} sendActions = {this.sendActions}/>
</div>
);
}
}
это мои mapStateToProps и mapDispatchToProps
function mapStateToProps(state) {
return {
addBorrowers: state.parentReducer.ui_state.addBorrowers,
}}
function mapDispatchToProps(dispatch){
return bindActionCreators({
leftNavigation: leftNavigation}, dispatch);
}
export default connect(mapStateToProps, mapDispatchToProps)(BorrowersParent);
Примечание. Компонент AddBorrowers и BorrowersParent находятся в одном файле.
При запуске onClick в компоненте AddBorrowers this.props продолжает возвращать undefined из метода sendActions, расположенного в BorrowersParent.
пожалуйста, мне нужно перестать получать undefined из this.props, как мне это сделать? Мне нужно событие onClick для запуска dispatch () ??
@estus .. пожалуйста, как мне этого добиться
Смотрите ответы в дублированном вопросе.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Либо вы используете функцию стрелки на sendActions:
sendActions = (data) => {
switch(data){
case 'hide Add Borrrowers Form':
console.info(this.props);
break;
}
}
или вы привязываете этот метод в конструкторе:
constructor(props){
super(props);
this.sendActions = this.sendActions.bind(this)
}
Без вышеуказанного контекст this изменяется во время события щелчка, и поэтому this.props не существует.
Хорошо .. позвольте мне быстро проверить это
Вау! это полностью решило это, мне нужно ответить на вопрос, который я продублировал ...
рад что помог. стрелочная функция создает лексическую привязку вместо динамической. При лексической привязке контекст «this» остается там, где он был определен.
sendActions - это обратный вызов. Он должен быть привязан к правильному
this.