A todo application in React using hooks
function markTodoItemComplete(id) {
    const todoListClone = todoList.slice();
    todoListClone[id - 1].complete = true;
    setTodoList(todoListClone);
  }


This seems me not good practice, what you could have done is just getting id(key) of array and just set it to true.
like

 function markTodoItemComplete(id) {
    todoListClone[id].complete = true;
  }