Потому что
key
должен быть уникальным значением, а у вас используется одно и тоже значние для кадого элемента списка. Самый простой и примитивный способ заткнуть реакт чтоб он не ругался на отцуствие ключа, это сделать как-то так:
taskList.map(function(item, idx) {
return (
<p className="task" key={idx} >{item}</p>
)
})
Но способ лучше - это организовать структуру состояния таким образом, чтоб уникальный ключ хранился в каждом элементе списка. Типа того:
taskList = [
{id: 1, objective: 'Buy milk'},
{id: 2, objective: 'Learn React'},
]
taskList.map(task => (<div key={task.id}>{task.objective}</div>))