获取嵌套数组 React

Posted

技术标签:

【中文标题】获取嵌套数组 React【英文标题】:Fetch nested array React 【发布时间】:2022-01-22 18:54:20 【问题描述】:

我正在学习 React,但在从我的 API 获取嵌套数组时遇到问题。我正在尝试将数组呈现为按钮。起初代码有效,但在刷新网页时,我得到一个空白页面,控制台中出现此错误:“Uncaught TypeError: item.options is undefined”。

  let  id  = useParams();
  //console.log(id);
  //kalla på fetchItem
  useEffect(() => 
    getMovie();
  , []);
  //hämta enskild
  const [item, setItem] = useState([]);

  const getMovie = async () => 
    const fetchItem = await fetch(`http://localhost:5000/api/movies/id=$id`);

    const item = await fetchItem.json();
    setItem(item);
    console.log(item);
  ;

  //hämta, map för att det är array
  return (
    <div className="App">
      <h1>Hello</h1>
      <h2>Question: item.description</h2>
      item.options.map((c) => (
        <button key=c.text>c.text</button>
      ))
    </div>
  );

这是我的猫鼬模式

const MovieSchema = mongoose.Schema(
  
    category:  type: String, required: true ,
    description:  type: String, required: true ,
    image: 
      type: String,
      required: false,
    ,
    options: [
      
        text: 
          type: String,
          required: true,
        ,
        is_correct: 
          type: Boolean,
          required: true,
          default: false,
        ,
        image: 
          type: String,
          required: false,
        ,
      ,
    ],
  ,
   collection: "movies" 
);

// 大菜鸟,感谢帮助

【问题讨论】:

【参考方案1】:

您的初始状态是错误的,因为空数组[] 没有可以映射的属性选项。而是尝试:

const [item, setItem] = useState(options: []);

【讨论】:

以上是关于获取嵌套数组 React的主要内容,如果未能解决你的问题,请参考以下文章

如何在 REACT JS API 调用中迭代 JSON 嵌套数组?

如何在 React 的 API 中渲染嵌套在对象中的数组中的数据?

React 中嵌套获取请求的问题

使用React-Native从嵌套JSON获取数据

React - 从 API 获取数据并映射嵌套的 JSON

如何使用 Jest 和/或 Enzyme 获取嵌套在 React 组件中的元素的属性?