首页 > 解决方案 > 循环中的 Material UI KeyboardTimepicker 始终具有相同的值

问题描述

我在循环中有一个时间选择器,当我为特定选择器选择时间时,另一个时间选择器的值被分配一个所选时间选择器的值。

我有这样的一天json:

[ {id:1,name:'Monday',val:'mon'}, {id:2,name:'Tuesday',val:'tue'}, {id:3,name:'Wednesday',val:'wed'}, ..]

当我使用日 json 循环时间选择器时:

const handleInputChange = (value, type) => {
    alert(type); // always alerts "sun"
    setCreateFields({...createFields, [`${type}`]: value});
};

{days.map( (day, i) => {
    return ( <div key={day.id}> 
        <MuiPickersUtilsProvider utils={DateFnsUtils}>
            <KeyboardTimePicke                                                       
                value={selectedTime}
                onChange={ handleInputChange(moment(e).format('hh:mm A'), `time_${day.value}`)} }
                open={isTimepickerOpen}
                onClose={() => toggleDatePicker(false, 'time')}
                TextFieldComponent={() =>
                    <input name={day.suffix} type="text" className="form-control" placeholder="Select time"
                    autoComplete="disabled" 
                    value={createFields[`time_${day.value}`] && createFields[`time_${day.value}`]}    
                    onChange={() => {}} 
                    onClick={() => toggleDatePicker(true, 'time')}
                    readOnly
                />}
            />
        </MuiPickersUtilsProvider>
    </div>
    )
}

现在,当我提醒type内部handleInputChange功能时,它总是说,但是当我在之前sun渲染时,它会正确显示。day.value<MuiPickersUtilsProver>

似乎是什么问题?我什至尝试将密钥添加到时间选择器,但即使所有时间选择器的密钥都不相同,它仍然无法正常工作。

标签: reactjsmaterial-ui

解决方案


推荐阅读