Я использую в качестве компонента формы редукцию, редукцию и реакцию-выбор, как показано ниже. У меня возникла проблема с использованием реквизита в качестве значения множественного выбора формы.Невозможно получить доступ к данным this.props внутри конструктора, реагировать + reducex
Многоэкранное значение отображается и работает корректно при загрузке реквизита или при обновлении страницы. Однако в нормальных случаях использования он работает неправильно.
Смарт-контейнер вызывает asyncconnect для отправки данных с книжным бегуном, и я использую соединение в этом компоненте для доступа к this.props.bookRunners.
class Form extends Component {
constructor(props) {
super(props);
const bookRunnerArray = this.getBookRunnerArray(this.props.bookRunners.bookRunners);
this.state = {
options: bookRunnerArray,
value: [],
};
}
Подключение к магазину:
const mapStateToProps = (state) => {
return {
bookRunners: state.bookrunners,
};
};
const mapDispatchToProps = (dispatch) => {
return { actions: bindActionCreators(dealActions, dispatch) }
};
export default connect(mapStateToProps, mapDispatchToProps)(Form);
Я думаю this.props.bookRunners пуст, когда я пытаюсь установить начальное состояние внутри конструктора. Я пробовал использовать componentenetWillMount(), но не повезло. Пожалуйста помоги!
Как вы подключаетесь к магазину? – Hosar
Вы не должны использовать this.props в своем конструкторе. Конструктор создает для вас этот файл. Вместо этого вы можете получить доступ к значению просто с помощью 'props. (YourValue)' – Chase
Спасибо за ваше примечание. Я изменил его на реквизиты, но все еще та же проблема. –