我希望在我的 React 组件中使用materialize-css创建一个带有日期选择器的表单。我没有这个表单捕获的很多字段,并且结构相当简单。返回的表单如下所示:
<form onSubmit={this.handleSubmit.bind(this)}>
<div className="container">
<div className="card grey lighten-3">
<div className="card-content black-text">
<span className="card-title">
<input placeholder="Event Name"
name="name" value={this.state.name}
onChange={this.handleStateChange.bind(this)}/>
</span>
<input name="description" placeholder="Description"
value={this.state.description}
onChange={this.handleStateChange.bind(this)}/>
<input name="image" placeholder="Image URL"
value={this.state.image}
onChange={this.handleStateChange.bind(this)}/>
<input placeholder="Start Date"
className="datepicker" name="startDate" value={this.state.startDate}
onSelect={this.handleStateChange.bind(this)}/>
</div>
<div class="card-action">
<div className="row">
<span>
<div className="col s3">
<input className="btn light-blue accent-1" type="submit" value="Submit"/>
</div>
<div className="col s3">
<a className="btn grey" onClick={this.handleExpand.bind(this)}>Cancel</a>
</div>
</span>
</div>
</div>
</div>
</div>
</form>
状态更改处理
handleStateChange(item) {
this.setState({[item.target.name]: item.target.value});
}
我已经调用AutoInit来初始化我的日期选择器
M.AutoInit();
我尝试使用onChange
而不是onSelect
管理日期选择器状态更改,但它似乎没有捕获该事件。随着onSelect
使用的日期有时会捕捉,如果我选择一个日期,然后重新打开日期选择器。
我还尝试使用一些替代的日期选择器初始化方法,但无济于事。
如何使用给定的设置正确捕获输入更改?