Я думаю, что есть ряд проблем с вашим кодом. Я постараюсь обратиться ко всем из них. Прежде всего, mapStateToProps
сопоставляет состояние Redux с компонентами. Вы поместили сопоставленный объект reduxResponse
в состояние вашего компонента. При рендеринге вы также перезаписываете сопоставленную реквизит, присваивая значение {}
. При создании ServiceBasicInfoForm
вы передаете service
как опору, но, насколько я понимаю, это нигде не определено. Что это должно быть? Если вы хотите передать reduxResponse
, просто сделайте это:
<ServiceBasicInfoForm reduxResponse= {reduxResponse}/>
Это будет доступно в ServiceBasicInfoForm с:
const {reduxReponse} = this.props;
Что касается «редактирования» реквизита - вы никогда не должны этого делать. Внутреннее состояние компонента должно сохранять его состояние, а не его реквизиты. Если вы хотите, чтобы ServiceBasicInfoForm возвращался к Сервису в определенный момент, пусть Service передается в функцию обратного вызова, имеющую опору для ServiceBasicInfoForm:
<ServiceBasicInfoForm reduxResponse={reduxResponse} callback={data => this.handleCallbackData(data)}/>
Теперь, если вам нужно, чтобы ServiceBasicInfoForm был Отобразится по-разному в зависимости от того, была ли отправлена отправка, вы можете просто поместить это в локальное состояние ServiceBasicInfoForm и визуализировать компонент на основе его локального состояния.
Поскольку вы используете redux, вы можете также рассмотреть пропуская прохождение этих реквизитов вообще. Вместо этого вы можете подключить ServiceBasicInfoForm к состоянию избыточности и обновить его при поступлении данных (используя mapDispatchToProps) и позволить внешнему компоненту Service прослушивать глобальное состояние (используя mapStateToProps).