reactjs - 如何实现 Material UI DatePicker 和 TimePicker?值未定义
问题描述
我习惯于提出状态,但这个值来自组件 DatePicker & TimePicker,我怎么可能将它提升到父组件或事件读取它在组件 DatePicker & TimePicker 被调用?
我正在关注亚历克斯的实施。console.log(this.state.date this.state.time)
投掷undefined
import React from "react";
import DateFnsUtils from "@date-io/date-fns";
import "./PickerBackdrop.css";
import {
DatePicker,
TimePicker,
DateTimePicker,
MuiPickersUtilsProvider
} from "@material-ui/pickers";
class PickerDrawer extends React.Component {
constructor(props) {
super(props);
this.state = {
date: null,
time: null
};
this.handleDate = this.handleDate.bind(this);
this.handleTime = this.handleTime.bind(this);
}
handleTime(event, time) {
this.setState({ time: time });
}
handleDate(event, date) {
this.setState({ date: date });
}
render() {
return (
<div>
<MuiPickersUtilsProvider utils={DateFnsUtils}>
<DatePicker
label="Due Date"
value={this.state.date}
onChange={this.handleDate}
animateYearScrolling
style={{ fontSize: "26px" }}
showTodayButton={true}
disablePast={true}
/>
<TimePicker
label="Time"
value={this.state.time}
onChange={this.handleTime}
animateYearScrolling
className=""
/>
</MuiPickersUtilsProvider>
</div>
);
}
}
export default PickerDrawer;
关于 Material UI DatePicker 和 TimePicker有一些相关的 stackoverflow问题,但我不明白答案......对不起
解决方案
工作示例:
import React, { Component } from 'react'
import Grid from '@material-ui/core/Grid'
import { MuiPickersUtilsProvider, TimePicker, DatePicker } from 'material-ui-pickers'
import DateFnsUtils from '@date-io/date-fns'
class Page extends Component {
constructor(props) {
super(props)
this.state = {
startDate: new Date(),
endDate: new Date()
}
}
handleDateChange = date => this.setState({ startDate: date })
handleTimeChange = date => this.setState({ startDate: date })
render() {
return (
<Grid container spacing={Number(8)} >
<MuiPickersUtilsProvider utils={DateFnsUtils}>
<Grid item xs={12}>
<DatePicker
fullWidth
margin="normal"
variant="outlined"
label="Start date"
value={this.state.startDate}
onChange={this.handleDateChange}
/>
</Grid>
<Grid item xs={12}>
<TimePicker
fullWidth
mode='24h'
margin="normal"
variant="outlined"
label="Start time"
value={this.state.startDate}
onChange={this.handleTimeChange}
/>
</Grid>
</MuiPickersUtilsProvider>
</Grid>
)
}
}
export default Page
推荐阅读
- node.js - IBM Watson Visual Recognition (NodeJS) - 错误代码 403:禁止访问:由于凭据无效,访问被拒绝
- jmeter - 响应的 JMETER 断言不起作用
- algorithm - 如何找到一条线跟随迷宫机器人的最佳路径?
- javascript - typeof options == 'object' && options,为什么这会返回对象值?
- azure-devops - 是否可以在 Azure Devops/TFS 上获得发布管道创建日期?
- java - 使用 Java 更改 Maven 依赖项版本
- python - 列字符串值中包含的每个单词的计数频率
- bigchaindb - 私钥和公钥存储在 bigchainDB 的什么位置?
- android - Android:在 BackPressed Fragment 上不加载内容
- modelsim - 使用 Cocotb 在 Modelsim 中显示波浪