React-Redux LocalForm не может получать значения при отправке - PullRequest
0 голосов
/ 21 июня 2020

Я использую react-redux-form LocalForm, данные которого сохраняются в хранилище redux. Его документы можно найти здесь . У меня есть код ниже:

handleSubmit(value) {
        console.log('Current State is: ' + JSON.stringify(value));
        alert('Current State is: ' + JSON.stringify(value));
    }
changeAction(model, value){
        console.log(model);
            this.props.dispatch({type:'CHANGE_FIELD',payload:{ value: value}});
    }

<LocalForm model="feedback" onSubmit={(values) => this.handleSubmit(values)}>
                                    <Control.text model=".firstname" id="firstname" name="firstname"
                                        placeholder="First Name"
                                        className="form-control"
                                        defaultValue={this.props.fields.feedback.firstname}
                                        changeAction={this.changeAction}
                                        updateOn="change"
                                         />
                                        
                            
                                    <Button type="submit" color="primary">
                                    Send Feedback
                                    </Button>
                        </LocalForm>

Ниже приведен редуктор для redux:

const InitialFeedback={
    feedback: {
        firstname: ''
    }
};

export const formsData=(state=InitialFeedback,action)=>{
    switch(action.type){
        case 'CHANGE_FIELD':
                return {...state, feedback:{...state.feedback, firstname: action.payload.value} };
        default:
            return state
    }
}

Данные сохраняются в магазине правильно, но проблема в том, что когда я отправляю форму, он показывает мне пустой объект значений, что означает, что он не может получить значения поля.

Но когда я удаляю эти два атрибута Control.text, changeAction и updateOn, он правильно выбирает значения полей при отправке, но в этом случае я не могу сохранить данные в хранилище redux.

Не могли бы вы помочь мне определить, есть ли в моем коде какая-либо ошибка, потому что консоль не показывает ее. Также в документации об этом ничего не говорится!

Спасибо!

1 Ответ

0 голосов
/ 21 июня 2020

Я обнаружил, что не так в коде. На самом деле это не из-за redux, я думаю, что это ошибка в react-redux-form, потому что я пробовал использовать его без redux. Вероятная проблема заключается в том, что вы не можете использовать changeAction и updateOn с onSubmit. Вы должны использовать onChange!

...