У меня возникли проблемы с привязкой 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.
Любая помощь приветствуется ...
@N. Jadhav - в документации также упоминается, что По умолчанию имеет значение NULL, так почему бы вам не иметь возможность «повторно установить» значение NULL после получения значения? Ваше предложение может объяснить ошибку, которую я получаю в локальной среде, однако присвоение значения null кажется вполне приемлемым при использовании встроенной «скрипки» в верхней части той самой страницы документов, на которую вы ссылаетесь. Не стесняйтесь вставить мой образец кода, чтобы увидеть, как привязка нулевого значения не вызывает ошибки. Проблема заключается в несоблюдении правильной даты для max или min.
Если вы передадите некоторую дату в минимальную или максимальную дату, она будет работать. Причина ошибки - null. Если вы хотите проверить, пожалуйста, какое-нибудь значение в минимальной или максимальной дате.
@N. Jadhav - То, что вы утверждаете, просто неверно, по крайней мере, для версии 6.5.1 ExtReact. Опять же, я умоляю вас попробовать мой пример кода во встроенной "скрипке" на странице документов ExtReact 6.5.1 DatePickerField (ссылка выше). Вы увидите, что вполне приемлемо установить нулевое значение для maxDate или minDate. Проблема в том, что значения даты, переданные для maxDate или minDate, являются не наблюдается сборщиками (они фактически не ограничивают выбор даты). Моя первоначальная озабоченность оказалась двоякой. Пожалуйста, ознакомьтесь с моими собственными ответами для открытий в отношении обоих.

функциональностьminDate и maxDate явно перестал работать должным образом в 6.5.1 (работал в 6.5.0) как сообщил Сенча.
Очевидно, свойства minDate и maxDate были затем удалены из компонента DatePickerField в версии 6.5.2 ExtReact и остались отсутствующими в версии 6.5.3. Также были удалены связанные геттеры и сеттеры.
Потому что вы передаете значения
nullвmaxDateиminDateв DatePickerField. Вы не можете передать null, чтобы узнать подробности, пожалуйста, прочтите документы