【发布时间】:2020-04-18 00:49:54
【问题描述】:
我需要获取值被修改的日期/时间,以便我可以更新它的状态,然后通过上下文将它推送到 App.js 中的 addNote 函数。来自 json 服务器的一个示例是“2019-01-03T00:00:00.000Z”所以我需要日期和时间来匹配这种格式。
export class AddNote extends Component {
state = {
id: '',
name: '',
modified: '',
folderId: '',
content: ''
}
static contextType = Context;
handleChange = (e) => {
const { modified } = e.target.dataset.modified; <---------
this.setState({
id: e.target.id,
name: e.target.value,
modified: {modified},
folderId: e.target.dataset.folderId
})
}
render() {
const id = uuidv4();
const folderId = uuidv4();
const date = new Date() <-------------------
const isoString = date.toISOString(); <-------------
return (
<div>
<form
onSubmit={this.handleSubmit}
className='AddNoteForm'
>
<h2>Add Note</h2>
<label>Name: </label>
<input
type="text"
id={id}
value={this.state.name}
data-folderId={folderId}
data-modified={isoString} <------------
onChange={this.handleChange}
/>
【问题讨论】:
-
您希望与从服务器返回的日期时间相匹配的日期时间在哪里?是
this.state.modified吗? -
这是我刚刚意识到的问题的另一半。我可以按照下面的回答进行转换,但首先我需要获取开始的值
-
好吧,这就是我所追求的……价值。
-
关于如何在不为用户手动输入日期的情况下创建字段的任何建议?
-
这很简单。您只需创建一个
new Date(),这将返回当前日期和时间。如果用户正在输入一些数据,只需等待他们提交,当您绑定模型时,您会为日期创建一个额外字段并使用new Date()创建Date的实例。然后你可以使用(new Date()).toISOString()来转换它。但显然你会把它存储到一个变量中
标签: javascript reactjs time