gpt4 book ai didi

javascript - 如何在material-ui中将日期对象转换为字符串? ReactJS。在表格上显示日期

转载 作者:行者123 更新时间:2023-11-28 03:50:37 26 4
gpt4 key购买 nike

material-ui中的DatePicker生成日期对象。我想在 table 上显示选择的值。为了显示这一点,我需要将对象转换为字符串,因为不可能将对象传递到表格单元格。我必须在哪个位置以及如何使用 dateToString() 函数在表格行上显示日期?或者也许有更好的方法将日期从 DatePicker 传递到表?

父组件:

class Home extends Component {
constructor(props) {
super(props);
this.state = { data: []};
}

handleSubmit = (submission) =>{
this.setState({
data: [...this.state.data, submission]
})}

render() {
return (
<div>
<AddTaskDialog
onSubmit={this.handleSubmit}
/>
<TableTasks
data={this.state.data}
header={[
{
name: "No",
prop: "no"
},
{
name: "Task",
prop: "nameTask"
},
{
name: "Deadline",
prop: 'deadline'
},
{
name: "Priority",
prop: "priority"
}
]}
/>
</div>
);
}}
export default Home;

子组件:

export default class AddTaskDialog extends React.Component {
constructor(props) {
super(props);
this.state = { priority: '', nameTask: '', deadline: new Date(), open:false };
this.handleChangeDate = this.handleChangeDate.bind(this);
this.handleTextFieldChange = this.handleTextFieldChange.bind(this);
this.handleChangeSelectField = this.handleChangeSelectField.bind(this);
this.handleOpen = this.handleOpen.bind(this);
}

handleTextFieldChange = (event) =>{
this.setState({
nameTask: event.target.value,
});}

handleChangeSelectField = (event, index, priority) => {
this.setState(
{priority}
);}

handleChangeDate = (event, date) => {
this.setState({
deadline: date
});}

handleOpen = () => {
this.setState({open: true});
};

onSubmit = (e) => {
e.preventDefault();
this.setState({ open: false });
};

render() {
return (
<form>
<AddButton onClick={this.handleOpen} />
<Dialog title="Add new task" actions={this.props.actions} modal={false} open={this.state.open} >
<TextField
name="nameTask"
floatingLabelText="Task"
value={this.state.nameTask}
onChange={e => this.handleTextFieldChange(e)}
errorText={this.state.nameTaskError}
floatingLabelFixed
/>

<DatePicker floatingLabelText="Deadline" value={this.state.deadline} onChange={this.handleChangeDate}/>


<SelectField floatingLabelText="Priority" value={this.state.priority} onChange={this.handleChangeSelectField} >
<MenuItem value="High" primaryText="High" />
<MenuItem value="Medium" primaryText="Medium" />
<MenuItem value="Low" primaryText="Low" />
</SelectField>
<RaisedButton label="Submit" onClick={e => this.onSubmit(e)} primary />
</Dialog>
</form>
);}}

子组件:

const row = (x, i, header) => {
<TableRow key={`tr-${i}`}>
{header.map((y, k) =>
<TableRowColumn key={`trc-${k}`}>
{x[y.prop]}
</TableRowColumn>)}
</TableRow>}

export default ({ data, header }) =>
<Table>
<TableHeader>
<TableRow>
{header.map((x, i) =>
<TableHeaderColumn key={`thc-${i}`}>
{x.name}
</TableHeaderColumn>
)}
</TableRow>
</TableHeader>
<TableBody>
{data.map((x, i) => row(x, i, header))}
</TableBody>
</Table>;

最佳答案

handleChangeDate 中执行此转换,从 event.date 创建字符串以供查看。或者使用 formatDate prop 在日期选择器中正确执行此操作,解决方案在另一个 answer

关于javascript - 如何在material-ui中将日期对象转换为字符串? ReactJS。在表格上显示日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48021159/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com