javascript - DatePicker 禁用错误

标签 javascript reactjs datepicker office365 office-ui-fabric

我想创建一个组件,其中包含 DatepickerChoiceGroup使用 ReactJs 和 Office365。在第一次渲染时,日期选择器必须被禁用,当我们在 ChoiceGroup 中选择自定义单选按钮时,它必须被启用。代码片段:

<div>
                    <ChoiceGroup
                        defaultSelectedKey='all'
                        onChange={ this._onChange }
                        label='Date'
                        options={ [
                            {
                                key: 'all',
                                text: 'All'
                            },
                            {
                                key: 'thisWeek',
                                text: 'This week',
                            },
                            {
                                key: 'lastWeek',
                                text: 'Last week',
                            },
                            {
                                key: 'thisMonth',
                                text: 'This month',
                            },
                            {
                                key: 'custom',
                                text: 'Custom',
                            }
                        ] }

                    />

                            <DatePicker
                                label='label'
                                isRequired={ false }
                                disabled={ pickerDisabled }
                                strings={ strings }
                                allowTextInput={ false }
                                value={ value }
                            />

                </div>

picker 已disabled 参数,我想在 ChoiceGrou 方法中更改它:

onChange = (ev, option) => {
        console.dir(option);
        if(option.key === 'custom') {
            this.setState({
                pickerDisabled: false
            })
        } else {
            this.setState({
                pickerDisabled: true
            })
        }
    }

此方法有效并更改参数,但日期选择器组件的禁用不会改变。它保持不变,当我单击任何单选按钮时,我在控制台中收到错误:

Exception in DatePicker.componentWillReceiveProps(): TypeError: date1.getFullYear is not a function

此错误的原因可能是什么?

最佳答案

看来您正在将无效的传递给DatePicker组件,我的猜测(没有更多上下文/信息)是默认情况下为 null/undefinedDatePicker 默认为当前日期,但 value 由单选按钮,它不是一个有效的值(根据错误,看起来 DatePicker 需要一个 Date 对象(它正在尝试调用 getFullYear() 上),但 value 是一个字符串)。

检查 DatePicker 组件的文档,了解其 value 属性的预期内容并进行相应更新。

关于javascript - DatePicker 禁用错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45865763/

相关文章:

validation - bootstrap datepicker结束日期不能比开始日期晚1年以上

javascript - 访问事件中设置的变量

javascript - 如何在 native react 中设置下拉菜单中的默认值

javascript - bootstrap-datepicker 在选择当前日期后清空字段

reactjs - 处理 mapStateToProps 内应用程序错误的强大方法?

javascript - 导入新的 React 组件会编译但不会渲染

javascript - datepicker beforeShowDay 返回 3 个月

javascript - 除非单击特定元素,否则火焰模糊事件

javascript - 使用 jquery 将文本更改为 h1?

JavaScript输出6个随机数