Предупреждение: компонент изменяет неконтролируемый ввод типа time, которым нужно управлять. Элементы ввода не должны переключаться с неконтролируемого на управляемый (или наоборот). Выберите между использованием контролируемого или неконтролируемого элемента ввода на протяжении всего срока службы компонента.
Итак, у меня есть компонент, который динамически отображает несколько полей ввода на основе элементов в массиве. Мой массив содержит 7 дней, и я зацикливаю несколько полей ввода для каждого дня. Также есть действие для каждого из этих полей ввода. Нажимая кнопку, я могу выбрать, должны ли некоторые поля ввода иметь одинаковое или разное содержимое. Каждое из этих полей ввода также должно иметь уникальное состояние. Итак, я создаю пустое состояние вроде этого:
constructor(props) {
super(props);
this.state = {};
}
И создайте его внутри моего цикла вот так:
() => this.setState({ ['show' + day + '_morning'] : true })
() => this.setState({ ['show' + day + '_afternoon'] : true })
Хотя я мог предопределить каждое из этих состояний как «showMonday_morning» и т. д., Я попытался избежать этого, потому что я хочу научиться создавать состояния динамически в циклах для дальнейшего использования.
Все работает отлично, но я получаю код ошибки сверху.
Могу ли я отнестись к этой ошибке легкомысленно или ее нужно решить? Если ее необходимо решить, как я могу динамически создавать и добавлять состояния внутри цикла и избегать этой ошибки?



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Насколько я знаю, React.js говорит вам принять решение об использовании одного типа элементов ввода, контролируемых или неконтролируемых, если у вас есть оба из них в компоненте, вы увидите это предупреждение, я предлагаю создать собственный компонент InputComponent. где вы можете использовать его в своем приложении React.
Это предупреждение не считается опасным, оно предназначено для более чистого реагирования и оптимизации.
посмотрите на это medium.com/myheritage-engineering/…: +1: удачи
Очень интересная статья! Думаю, я немного это понимаю; однако я все еще придерживаюсь своего кода и не вижу другого выхода, кроме как задать новый вопрос, связанный с ним: stackoverflow.com/questions/53648933/….
Вам не нужно динамически создавать состояние в конструкторе. Скорее вы можете просто условно использовать его при рендеринге.
<input value = {this.state.['showSatMorning'] || ''} />
Can I take this error lightly or should this be solved?
Хотя это предупреждение не повлияет ни на что в вашем приложении, но лучше обрабатывать такие предупреждения, чтобы ваше приложение было согласованным и избегало неожиданных проблем.
Спасибо за разъяснения! Я также предпочитаю иметь чистое приложение без ошибок, так что это помогает!
Могу я получить вашу электронную почту @Shubham Khatri
@Pie Вы можете связаться со мной в LinkedIn или написать мне в Twitter, и я отправлю вам свой электронный адрес.
@ShubhamKhatri Я уже отправил DM в твиттере. Запрос на электронную почту
Спасибо за разъяснения! Я также предпочитаю иметь чистое приложение без ошибок, так что это помогает!