#reactjs #react-datepicker
Вопрос:
Я создаю приложение со списком дел, и одно из полей-дата.
Ниже показано, где я устанавливаю Выбранную дату
<div>
<label>Select Date</label>
<Datepicker
selected={selectedDate}
onChange={(date) => setSelectedDate(date)}
placeholder='Select Date'
minDate={new Date()}
isClearable
showYearDropdown
scrollableYearDropdown
/>
</div>
Я пытаюсь передать его в функцию onAdd
onAdd({ text, selectedDate , reminder })
Однако я получаю ошибку — «Объекты недопустимы в качестве дочернего элемента React», потому что selectedDate-это объект, и мне нужно передать строку.
Но всякий раз, когда я пытаюсь преобразовать его в строку, я блокируюсь от этого — например, я не могу этого сделать:
onAdd({ text, selectedDate.toLocaleDateString() , reminder })
Точка завершения подсвечивается, и ошибка говорит, что», » ожидалось.
Кто-нибудь может мне помочь?
Функция onAdd выше приводит к этому, но, похоже, ошибка возникает на шаге выше.
const addTask = (task) => {
const id = Math.floor(Math.random()*10000) 1
const newTask = {id, ...task }
setTasks([...tasks, newTask])
}
Комментарии:
1.
onAdd({ text, selectedDate.toLocaleDateString() , reminder })
входные данные-это объект. Вы используете синтаксис короткой руки, так что вызов на самом делеonAdd({ text:text, selectedDate.toLocaleDateString() , reminder:reminder })
. Теперь, каков ключ от вашей 2-й собственности? Ничего. Вот почему он жалуется. Попробуйте дать такое имя, какonAdd({ text, selectedDate:selectedDate.toLocaleDateString() , reminder })
2.
onAdd({ text, selectedDate.toLocaleDateString() , reminder })
недопустимый JS; вы не можете использовать стенографию обозначения объектов, если это неверный ключ.3. «Объекты недопустимы как дочерние элементы React» — это другая проблема. Можете ли вы поделиться кодом, в котором он используется?
4. @SanishJoseph большое спасибо! вы ответили на мой вопрос. Я не понимал, что он использует синтаксис короткой руки. Я отредактировал, как вы предложили, selectedDate:selectedDate.toLocaleDateString()
5. приятно это знать. Я добавлю к нему ответ, чтобы кто-нибудь мог получить помощь.
Ответ №1:
onAdd({ text, selectedDate.toLocaleDateString() , reminder })
вход этой функции является объектом. Вы используете синтаксис короткой руки, так что вызов на самом деле onAdd({ text:text, selectedDate.toLocaleDateString() , reminder:reminder })
. Теперь, каков ключ от вашей 2-й собственности? Ничего. Вот почему он жалуется. Попробуйте дать такое имя, как onAdd({ text, selectedDate:selectedDate.toLocaleDateString() , reminder })