onlineUrs.map не является функцией интерфейса React Js

#reactjs

#reactjs

Вопрос:

Я пытаюсь сопоставить данные api в reactjs, но когда я пытаюсь сопоставить данные, это выдает ошибку, что map не является функцией, пожалуйста, помогите мне, я не понимаю, почему он продолжает говорить мне, что это не функция, пожалуйста, поправьте меня, я новичок в reactjs.

Ошибка типа: onlineUrs.map не является функцией

 import React , { useEffect, useState }  from 'react'
import axios from "./axios.js"
import Header from "../dashbroad/Header.js";
import Sidebar from "../dashbroad/Sidebar.js";


function Online() {
  const [onlineUrs , setOnlineUrs] = useState([]);
  
  const config = {
    headers: {
        "Content-Type": "application/x-www-form-urlencoded",
        Authorization : 'Bearer '    localStorage.getItem('token'),
    },
};

useEffect(() =>{
  axios.get("http://localhost:8001/api/v1/active", config).then((response) => {
    setOnlineUrs(response.data);  

  });
});
 
console.log(onlineUrs)


  return (
    <div className="app">
      <Header/>
      <div className="app_body">

        <Sidebar />

        <div className="row_posters">
    {
      onlineUrs.map((item, index ) =>(
        <h1>{item.result}</h1>

      ))

    }
    
    </div>


</div>
  
</div>

      </div>
    </div>
  );
}

export default Online
 

Ответ №1:

map() может использоваться только для массивов. В этой ситуации похоже, что onlineUrs не является массивом или еще не задан.

Вы могли бы разместить что-то подобное перед вызовом функции map():

 
onlineUrs amp;amp; Array.isArray(onlineUrs) amp;amp; onlineUrs.map((item, index) =>{
        <h1>{item.result}</h1>
      )}
 

Если ваш ответ api не является массивом, ничего не будет отображаться и не нарушит ваш код

Комментарии:

1. Пожалуйста, примите ответ, проголосуйте, если хотите, и закройте вопрос 🙂