解决了一些问题后,我坚持将 DatePicker 数据发送到我的表单。在我的表单中,我主要使用 redux-form-material-ui 中的元素,但 DatePicker 不是其中的一部分。
我找到了两种使用 redux-form 创建 DatePicker 组件的方法。
<Field
name="startDate"
autoOk={true}
floatingLabelText="startDate"
component={(startDate) => {
return <DatePicker {...startDate} />;
}}
onChange={(event, date) => {console.log(date);}}
/>
和
<DatePicker
name="startDate"
autoOk={true}
floatingLabelText="startDate"
onChange={(event, date) => {console.log(date)}} />
问题是我不知道用它更新表单数据的方法。第一个示例甚至没有在文本字段中显示选择的日期。我可以在form.myForm
商店中看到,我激活了日期字段,但它永远不会随所选日期更新。第二个显示选择的日期,但它不是form.myForm
对象的一部分......
我在互联网上找到了一些示例(例如https://github.com/erikras/redux-form/issues/364),但fields
道具中没有对象,因此无法调用this.props.fields.startDate.onChange
.
我不确定使用 redux-form 和 material-ui 的好方法是什么,因为没有很多工作示例。我开始考虑为我使用的每个组件制作一个包装器,它将提供 onChange 方法,该方法将使用表单中的任何更改更新我的商店。但是后来我不再需要 redux-form,所以我认为必须有其他解决方案,我可以使用。
"react": "15.1.0",
"react-tap-event-plugin": "1.0.0",
"redux": "3.0.5",
"redux-form": "^6.0.0-alpha.4",
"redux-form-material-ui": "^2.0.0",