私はReactとReduxに比較的新しく、学習用の簡単なajaxメールフォームを作成しました。私が抱えている問題は、フォームの提出後、すべてのフィールドをクリアするはずのInitialstateにストアステートを戻しますが、ストアステートは戻さないということです。私はredux loggerで店舗の変化を見ることができます。*写真が添付されていますが、これらの変更はUIに表示されません。私の店舗は状態に正しくマッピングされていませんか?あるいは、私はどこかで州に変異を起こしていますか?リアクションUIが店舗変更後に更新されない
export default function contactForm(state = initialState.formValues, action) {
switch (action.type) {
case types.FORM_RESET:
return initialState.formValues;
case types.FORM_SUBMIT_SUCCESS:
return Object.assign({}, action.message);
default:
return state;
}
}
コンバインリデューサー:
私の減速は、次のようになります
import { combineReducers } from 'redux';
import message from './formReducer';
import ajaxCallsInProgress from './ajaxStatusReducer';
const rootReducer = combineReducers({
message,
ajaxCallsInProgress
});
私の初期状態は以下のようになります。
export default {
formValues: {
name: '', email: '', message: '',
},
ajaxCallsInProgress: 0,
};
私の行動
は次のようになります。 経由して、私は小道具に状態をマッピングしていますビューで:
constructor(props, context) {
super(props, context);
this.state = {
message: Object.assign({}, this.props.message),
}
}
render() {
return (
<ContactForm
onChange={this.updateMessageState}
onSubmit={this.submitForm}
message={this.state.message}
/>
);
}
function mapStateToProps(state) {
return {
message: state.message,
};
}
function mapDispatchToProps(dispatch) {
return {
actions: bindActionCreators(formActions, dispatch)
};
}
export default connect(mapStateToProps, mapDispatchToProps)(ContactSection);
ストアを示すログは、私はどんなアドバイスに非常に感謝される
を変更します。
あなたの初期状態はどうなっていますか?問題の原因は、あなたが減量する人の状態を変えているということです。 – Tom
トム、イブにちょうど初期状態を追加しました –