#javascript #reactjs
Вопрос:
Я кодирую трекер задач, когда вы можете добавлять и удалять задачи. У каждой задачи есть значение идентификатора, и при добавлении новой задачи идентификатор будет последним 1. Если я удалю все задачи, а затем добавлю одну, идентификатор будет NaN, я хотел бы получить некоторую помощь 🙂
задачи —
const App = () => {
const [tasks, setTasks] = useState([
{
id: 1,
text: 'Taking react course',
day: 'Aug 29th at 9:00am ',
reminder: true,
},
{
id: 2,
text: 'Exersice at the gym',
day: 'Aug 29th at 1:00pm',
reminder: true,
},
]);
};
при добавлении задачи —
const onAdd = (task) => {
const id = tasks[tasks.length - 1]?.id 1; // Without this line I am getting undefined id error so thats why I putted that question mark over there.
const newTask = { id, ...task };
setTasks([...tasks, newTask]);
};
Ответ №1:
Предположительно, это потенциально может привести к null
тому, что здесь:
tasks[tasks.length - 1]?.id
Но вы можете указать значение по умолчанию 0
, когда это произойдет:
tasks[tasks.length - 1]?.id ?? 0
Таким образом, это всегда должно, по крайней мере, разрешаться допустимым числом:
const id = (tasks[tasks.length - 1]?.id ?? 0) 1;
Ответ №2:
Вы можете условно присвоить значение идентификатору следующим образом:
мы проверим, пуст ли массив задач или нет, если он пуст, мы установим id=1
другое, мы будем следовать обычной логике
const onAdd = (task) => {
const id = tasks.length <= 0 ? 1 : tasks[tasks.length - 1]?.id 1;
const newTask = { id, ...task };
setTasks([...tasks, newTask]);