ExtReact DatePickerField `minDate` и` maxDate` не привязываются правильно

У меня возникли проблемы с привязкой minDate и maxDate двух средств выбора даты ("начало" и "конец") с помощью ExtReact 6.5.2. Вот пример кода:

import React, { Component } from 'react';
import { Container, DatePickerField, FormPanel, TextField } from '@extjs/ext-react';

export default class MyExample extends Component {
    constructor(props) {
        super(props);
        this.state = {
            beginPickerValue: null,
            endPickerValue: null
        };
    }

    render() {
        return (
            <Container layout = "center">
                <FormPanel
                    defaults = {{ clearable: true, editable: false }}
                    shadow
                >
                    <DatePickerField
                        label = "Begin"
                        onChange = {(datePicker, newValue) => this.setState({beginPickerValue: newValue})}
                        maxValue = {this.state.endPickerValue}
                    />
                    <DatePickerField
                        label = "End"
                        onChange = {(datePicker, newValue) => this.setState({beginPickerValue: newValue})}
                        minValue = {this.state.endPickerValue}
                    />
                </FormPanel>
            </Container>
        )
    }
}

В моей настройке с использованием Chrome я получаю следующую ошибку:

Uncaught Error: Date object or string in dateFormat required
    at new Ext.Error (ext.js:5817)
    at Function.raise (ext.js:5843)
    at Object.Ext.raise (ext.js:5860)
    at constructor.applyMaxDate (ext.js:59619)
    at constructor.setter [as setMaxDate] (ext.js:8892)
    at Ext.Configurator.configure (ext.js:9171)
    at constructor.initConfig (ext.js:9771)
    at constructor (ext.js:13108)
    at constructor (ext.js:23660)
    at constructor.callParent (ext.js:9746)

Я использовал точный код, приведенный выше в разделе «Примеры» Sencha для DatePickerField (см. Ссылки ниже). Код запускается, и поля отображаются, но привязки max и min не соблюдаются при установке дат.

Обратите внимание, что на момент написания этой статьи, для демонстрации вам нужно будет использовать блок кода Sencha «Примеры» в Документы ExtReact 6.5.1 для репликации. При использовании блока примера кода DatePickerField для версий 6.5.2 или 6.5.3 вы получите следующую ошибку даже при попытке запустить пример кода Sencha по умолчанию:

Uncaught ReferenceError: Ext is not defined
    at app.js:1

Я бы предоставил скрипку, использующую собственный Скрипач ExtReact Sencha, но и у него, похоже, есть проблемы с запуском собственного образца кода. : /

Насколько я понимаю, не должно быть необходимости в дополнительных функциях или необходимости запускать по событию. В React изменения в state должны соответствующим образом перенастроить конфигурации maxDate и minDate для DateFieldPicker.

Любая помощь приветствуется ...

Потому что вы передаете значения null в maxDate и minDate в DatePickerField. Вы не можете передать null, чтобы узнать подробности, пожалуйста, прочтите документы

Narendra Jadhav 15.04.2018 11:16

@N. Jadhav - в документации также упоминается, что По умолчанию имеет значение NULL, так почему бы вам не иметь возможность «повторно установить» значение NULL после получения значения? Ваше предложение может объяснить ошибку, которую я получаю в локальной среде, однако присвоение значения null кажется вполне приемлемым при использовании встроенной «скрипки» в верхней части той самой страницы документов, на которую вы ссылаетесь. Не стесняйтесь вставить мой образец кода, чтобы увидеть, как привязка нулевого значения не вызывает ошибки. Проблема заключается в несоблюдении правильной даты для max или min.

Jasel 15.04.2018 15:51

Если вы передадите некоторую дату в минимальную или максимальную дату, она будет работать. Причина ошибки - null. Если вы хотите проверить, пожалуйста, какое-нибудь значение в минимальной или максимальной дате.

Narendra Jadhav 15.04.2018 20:22

@N. Jadhav - То, что вы утверждаете, просто неверно, по крайней мере, для версии 6.5.1 ExtReact. Опять же, я умоляю вас попробовать мой пример кода во встроенной "скрипке" на странице документов ExtReact 6.5.1 DatePickerField (ссылка выше). Вы увидите, что вполне приемлемо установить нулевое значение для maxDate или minDate. Проблема в том, что значения даты, переданные для maxDate или minDate, являются не наблюдается сборщиками (они фактически не ограничивают выбор даты). Моя первоначальная озабоченность оказалась двоякой. Пожалуйста, ознакомьтесь с моими собственными ответами для открытий в отношении обоих.

Jasel 16.04.2018 02:19
Привязка маршрутной модели в Laravel
Привязка маршрутной модели в Laravel
Laravel - один из самых популярных на сегодняшний день PHP-фреймворков. Одной из его многочисленных функций является Route Model Binding, которая...
0
4
413
1

Ответы 1

функциональностьminDate и maxDate явно перестал работать должным образом в 6.5.1 (работал в 6.5.0) как сообщил Сенча.

Очевидно, свойства minDate и maxDate были затем удалены из компонента DatePickerField в версии 6.5.2 ExtReact и остались отсутствующими в версии 6.5.3. Также были удалены связанные геттеры и сеттеры.

Другие вопросы по теме