私はMapsAddrForm.jsxでRedux-Formを使用してフォームを実装しようとしていましたが、入力要素の値を変更できないようです。ページがロードされると、input要素はキーボード入力に応答せず、フォームフィールドが送信されると空のオブジェクトを親コンポーネントDistrictFinderに返します。この2つのファイル以外に、redux-Formチュートリアルの単純な例と同様に、formReducerをcombineReducersの引数として追加しました。 DistrictFinderがアドレスフォームからデータオブジェクトを受け取る能力を回復する方法はありますか?参考までに、React 15.1.0、React-redux 4.4.5、ES6、Redux-Form 5.3.1を使用しています。これらはすべてWebpackを使用してコンパイルされています。Redux-Form:入力要素の値を変更できません
MapsAddrForm.jsx
import React, {Component} from 'react';
import { connect } from 'react-redux';
import {reduxForm} from 'redux-form';
class MapsAddrForm extends Component {
constructor(props) {
super(props);
}
render() {
const {fields: {address,address2}, handleSubmit} = this.props;
return (
<form onSubmit={handleSubmit}>
<div>
<input type="text" placeholder="Your address" {...address}/>
</div>
<button type="submit">Submit</button>
</form>
);
}
}
export default reduxForm({
form: 'addressForm',
fields: ['address']
})(MapsAddrForm);
DistrictFinder.jsx
import React, { Component, PropTypes } from 'react'
import MapsAddrForm from './MapsAddrForm.jsx'
import { connect } from 'react-redux'
import { changeAddress } from '../actions/index.jsx'
class DistrictFinder extends Component {
constructor(props) {
super(props);
this.handleAddrSubmit = this.handleAddrSubmit.bind(this);
}
handleAddrSubmit(data) {
console.log("Address received: " + JSON.stringify(data));
}
render() {
const {address, district} = this.props
return (
<div class="GMaps">
<h1>Find your district!</h1>
<MapsAddrForm onSubmit={this.handleAddrSubmit} />
<p>My district number is: {district}</p>
</div>
);
}
}
DistrictFinder.propTypes = {
district: PropTypes.string.isRequired,
dispatch: PropTypes.func.isRequired
};
function mapStateToProps(state) {
const { district } = state.infoChange;
return {
district
};
};
export default connect(mapStateToProps)(DistrictFinder);