Mat*_*hew 5 reactjs react-datepicker
我有 6 个使用 React-Datepicker 的表单输入。我需要使用 handleChange() 来 setState 6 次,但我不明白如何从每个表单输入动态获取 name 属性,因为“date”在通过函数传递时不包含任何其他数据。我试过传递“名称”,但它不起作用。handleSelect() 也是如此
this.state = {
dateOne: new Date(),
dateTwo: new Date(),
dateThree: new Date(),
dateFour: new Date(),
dateFive: new Date(),
dateSix: new Date()
}
handleChange(date) {
this.setState({ ...this.state, ?????: date });
}
handleSelect(date) {
this.setState({ ...this.state, ?????: date });
}
<form>
<DatePicker
name="dateOne"
selected={this.state.dateOne}
onSelect={this.handleSelect}
onChange={this.handleChange}
/>
<DatePicker
name="dateTwo"
selected={this.state.dateTwo}
onSelect={this.handleSelect}
onChange={this.handleChange}
/>
<DatePicker
name="dateThree"
selected={this.state.dateThree}
onSelect={this.handleSelect}
onChange={this.handleChange}
/>
<DatePicker
name="dateFour"
selected={this.state.dateFour}
onSelect={this.handleSelect}
onChange={this.handleChange}
/>
<DatePicker
name="dateFive"
selected={this.state.dateFive}
onSelect={this.handleSelect}
onChange={this.handleChange}
/>
<DatePicker
name="dateSix"
selected={this.state.dateSix}
onSelect={this.handleSelect}
onChange={this.handleChange}
/>
</form>
Run Code Online (Sandbox Code Playgroud)
我也试过这个:https : //github.com/Hacker0x01/react-datepicker/issues/242没有任何运气。
任何帮助都是极好的!
你可以这样试试:
<DatePicker
name="dateOne"
selected={this.state.dateOne}
onSelect={this.handleSelect}
onChange={(date)=>this.handleChange(date, 'dateOne')} //pass name as string
/>
handleChange(date, name) {
this.setState({
[name]: data
});
}
Run Code Online (Sandbox Code Playgroud)
因此,您将名称作为字符串传递,因为您无法访问target.name,然后按收到的名称更新状态[name]
asi*_*haj -1
试试这个代码
handleChange(date, flag) {
if(flag===1)
{
this.setState({
dateOne: date
})
}
if(flag===2)
{
this.setState({
dateTwo: date
})
}
if(flag===3)
{
this.setState({
dateThree: date
})
}
if(flag===4)
{
this.setState({
dateFour: date
})
}
if(flag===5)
{
this.setState({
dateFive: date
})
}
if(flag===6)
{
this.setState({
dateSix: date
})
}
}
......
<form>
<DatePicker
name="dateOne"
selected={this.state.dateOne}
onSelect={this.handleSelect}
onChange={(date)=>this.handleChange(date, 1)}
/>
<DatePicker
name="dateTwo"
selected={this.state.dateTwo}
onSelect={this.handleSelect}
onChange={(date)=>this.handleChange(date, 2)}
/>
<DatePicker
name="dateThree"
selected={this.state.dateThree}
onSelect={this.handleSelect}
onChange={(date)=>this.handleChange(date, 3)}
/>
<DatePicker
name="dateFour"
selected={this.state.dateFour}
onSelect={this.handleSelect}
onChange={(date)=>this.handleChange(date, 4)}
/>
<DatePicker
name="dateFive"
selected={this.state.dateFive}
onSelect={this.handleSelect}
onChange={(date)=>this.handleChange(date, 5)}
/>
<DatePicker
name="dateSix"
selected={this.state.dateSix}
onSelect={this.handleSelect}
onChange={(date)=>this.handleChange(date, 6)}
/>
</form>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3256 次 |
| 最近记录: |