reactjs - 在 TextField 中使用日期类型时如何显示值?
问题描述
我正在使用TextField
from material-ui
,我想在 TextField 中显示当前日期,并允许用户选择另一个日期。如果可能的话?
使用时value={date}
不会出现。我试图在互联网上找到一些帮助,但找不到任何东西。代码如下:TextField
type="date"
- 任何帮助表示赞赏!并提前感谢。
import React, { useState } from 'react';
import { TextField } from '@material-ui/core';
import { useForm } from 'react-hook-form';
export const AddDate: React.FC = () => {
const [date, setDate] = useState(
new Date().getDate() + '/' + (new Date().getMonth() + 1) + '/' + new Date().getFullYear(),
);
// handles when user changes input in date inputfield
const handleChangeDate = (e: React.ChangeEvent<HTMLInputElement>): void => {
setDate(e.target.value);
};
return(
{/*Text field - date*/}
<TextField
name="date"
id="date"
label="Date"
type="date"
InputLabelProps={{ shrink: true }}
inputRef={register}
value={date}
onChange={handleChangeDate}
fullWidth
required
/>
);
};
解决方案
这对我有用。
import React, { useState, useEffect } from "react";
import { TextField } from "@material-ui/core";
import "./styles.css";
import moment from 'moment';
const App =()=> {
const [date, setDate] = useState(
moment(new Date()).format("YYYY-MM-DD")
);
// handles when user changes input in date inputfield
const handleChangeDate = e => {
setDate(e.target.value);
};
console.log(date)
return (
<>
<TextField
name="date"
id="date"
label="Date"
type="date"
InputLabelProps={{ shrink: true }}
value={date}
onChange={handleChangeDate}
fullWidth
required
/>
</>
);
}
export default App;
我只是稍微更改了您的代码。只有变化来自 useState。您只需使用 moment js 将日期转换为 material-ui 日期类型。
推荐阅读
- listview - SwipeView 仅在执行滑动后对某些行做出响应!(直到页面手动导航)
- html - 从 jQuery 和 Thymeleaf 中的输入计算值?
- snowflake-cloud-data-platform - 带有更改日志的雪花建模,仅包含新记录和已删除记录
- language-agnostic - 编程世界中“业务逻辑”这个词的词源是什么?
- java - 转换 CompletableFuture
> 上课 - python - 我正在尝试在链接列表中搜索特定项目
- java - Java中的嵌套for循环优化-流替代导致不同的结果
- python - 子类实例的Python类型签名?
- r - 如何处理missForest中的不兼容类型错误?
- php - PHP脚本显示文件夹中的图像