[英]React-Datetime; I'm using two in one component, how do I tell which is which?
这是一个关于 react-datetime 的奇怪问题:为什么回调不允许返回“名称”?
我在日历调度程序上使用 Daytime 两次作为“开始”和“结束”时间。 但我想使用单个“onChange”事件来更新 state。 问题是:Datetime onChange 只返回时间,它不返回名称或 ID 或任何方式让我识别哪个 Datetime组件正在发送 onChange。
这是渲染()代码:
<CardSubtitle>Start Date:
<Datetime
value = {this.state.start}
onChange={this.handleChange}
className = "dateTimeModule"
/>
</CardSubtitle>
<CardSubtitle>End Date:
<Datetime
value = {this.state.end}
onChange={this.handleChange}
className = "dateTimeModule"
/>
</CardSubtitle>
这是我要使用的逻辑:
handleChange = (e) => {
this.setState({
bodyEdit: true,
[e.target.name]:e.target.value
})
};
但“e”只包含日期 object。 看来 Datetime 不支持“名称”返回?
我很困惑,这似乎是一个明显的失误。 我如何区分这些? 我需要为每个函数编写单独的函数吗?
考虑这样做:
handleStartChange = (e) => {
this.setState({
startDate: e
})
};
handleEndChange = (e) => {
this.setState({
endDate: e
})
};
但这似乎是不必要的代码。
你可以做的就是给你的 function 传递一个额外的参数:
<CardSubtitle>Start Date:
<Datetime
value = {this.state.start}
onChange={(e) => this.handleChange(e, "start")}
className = "dateTimeModule"
/>
</CardSubtitle>
<CardSubtitle>End Date:
<Datetime
value = {this.state.end}
onChange={(e) => this.handleChange(e, "end")}
className = "dateTimeModule"
/>
</CardSubtitle>
并在您的 handleChange(e, name) function 中重用此参数:
handleChange = (e, name) => {
this.setState({
bodyEdit: true,
[name]:e
})
};
还要确保您用作“e”的库返回的内容,它似乎不是经典事件,而是一个时刻 object:
日期更改时的回调触发。 如果输入中的日期有效,则回调接收选择的时刻 object 作为唯一参数。 如果输入中的日期无效,则回调接收输入的值(字符串)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.