Material-ui :在 KeyboardDatePicker onchange 上传递对象详细信息
Material-ui : Pass object detail on KeyboardDatePicker onchange
我想使用 KeyboardDatePicker
为数组中的每个行对象选择日期。
const meetings = [
{id: 1, title: 'a', date: '14/5/2020'},
{id: 2, title: 'b', date: '15/5/2020'}
];
const renderMeeting = () =>
meetings.map(row => (
<>
<h2>{row.title}</h2>
<KeyboardDatePicker
margin="normal"
label="Meeting Date"
value={row.date}
format="dd/MM/yyyy"
onChange={this.handleMeetingDateChange}
/>
</>
))
如何将 row
对象与选定的 date
一起传递给 handleMeetingDateChange()
?
P.S。我试过 react-datepicker
但设计与页面上的其他组件不一致,这就是我尝试使 KeyboardDatePicker
起作用的原因。
您可以像这样将行数据与事件一起传递:
onChange={(event) => this.handleMeetingDateChange(event, row)}
然后,您可以在 handleMeetingDateChange
中像这样访问这些变量
handleMeetingDateChange = (event, row) => {
console.log(event, row);
...
}
使用箭头函数。
像这样
...
let meetings = [{id: 1, title: 'a', date: '14/5/2020'}, {id: 2, title: 'b', date: '15/5/2020}];
const handleMeetingDateChange = (e, row) => {
console.log(row);
// rest code goes here
}
...
renderMeeting = () => {
{meetings.map(row => (
<h2>{row.title}</h2>
<KeyboardDatePicker margin="normal" label="Meeting Date" value={r.meetingDate} format="dd/MM/yyyy"
onChange={(e) => this.handleMeetingDateChange(e, row)}
))}
}
...
我想使用 KeyboardDatePicker
为数组中的每个行对象选择日期。
const meetings = [
{id: 1, title: 'a', date: '14/5/2020'},
{id: 2, title: 'b', date: '15/5/2020'}
];
const renderMeeting = () =>
meetings.map(row => (
<>
<h2>{row.title}</h2>
<KeyboardDatePicker
margin="normal"
label="Meeting Date"
value={row.date}
format="dd/MM/yyyy"
onChange={this.handleMeetingDateChange}
/>
</>
))
如何将 row
对象与选定的 date
一起传递给 handleMeetingDateChange()
?
P.S。我试过 react-datepicker
但设计与页面上的其他组件不一致,这就是我尝试使 KeyboardDatePicker
起作用的原因。
您可以像这样将行数据与事件一起传递:
onChange={(event) => this.handleMeetingDateChange(event, row)}
然后,您可以在 handleMeetingDateChange
handleMeetingDateChange = (event, row) => {
console.log(event, row);
...
}
使用箭头函数。
像这样
...
let meetings = [{id: 1, title: 'a', date: '14/5/2020'}, {id: 2, title: 'b', date: '15/5/2020}];
const handleMeetingDateChange = (e, row) => {
console.log(row);
// rest code goes here
}
...
renderMeeting = () => {
{meetings.map(row => (
<h2>{row.title}</h2>
<KeyboardDatePicker margin="normal" label="Meeting Date" value={r.meetingDate} format="dd/MM/yyyy"
onChange={(e) => this.handleMeetingDateChange(e, row)}
))}
}
...