Вы извлекаете клиентов из асинхронного сетевого запроса. Эти данные, которые вы извлекаете, недоступны до 2-го цикла рендеринга, вызванного вашим вызовом setClients
. Первый раз, когда это представление отрисовывается клиентами, является нулевым. При доступе к clients.map
выдается ошибка, поскольку на null
нет функции карты. Вы можете использовать логический оператор &&
для проверки нулей, прежде чем отобразить значение. Кроме того, ваш синтаксис является неполным. Измените свой код на,
return (
<div className="App">
<header className="App-header">
{clients && clients.map((client) => (<p key={client._id}>{client.DisplayName}</p>)}
</header>
</div>
)
Это гарантирует, что вызов clients.map
будет выполняться только тогда, когда клиенты не равны нулю. Этот метод известен как условный рендеринг . Я рекомендую вам прочитать это и другие руководства на actjs.org .