【问题标题】:Items not loading in useEffect in react反应中未在 useEffect 中加载的项目
【发布时间】:2021-05-25 01:17:25
【问题描述】:

这是我的反应组件:

import { ApiClient } from 'admin-bro'
import { Box } from '@admin-bro/design-system'
import React, { useEffect, useState } from "react";
// import './gallery.css';

const api = new ApiClient()

const Gallery = () => {
  const [data, setData] = useState({})

  useEffect(() => {
    api.getPage({pageName: 'Gallery'}).then((response) => {
      setData(response.data)
    })
  }, [])
  console.log(data);
  console.log(data.imageNameArray);
  return (
    <section id="list-view">
      {data.imageNameArray && data.imageNameArray.map(name=>{
      <h3>Hello</h3>
      // <div className="card" style="width: 18rem;">
      //   <img className="card-img-top" src={"/images/"+name} alt="Card image cap"/>
      //   <div className="card-body">
      //     <h5 className="card-title">Name: {name}</h5>
      //     <h5 className="card-title">Size: 15kb</h5>
      //     <a href="#" classNamr="btn btn-danger">Delete</a>
      //   </div>
      // </div>
    })}
    </section>
  )
}

export default Gallery

我的后台:

Gallery: {
            label: "Gallery Images",
            handler: async (req, res, context)=>{
                const imageNameArray = await getImagesUrl();
                return {
                    imageNameArray: imageNameArray
                }
            },
            component: AdminBro.bundle('../views/admin/dashboard/gallery.jsx')
        },

我从后端发送数据,console.log 为我提供了我需要的数组,但我最终在 html 中没有得到任何东西。我在控制台上得到了数组。我已将 async readdir 与 util.promisify 一起使用,并将文件名作为数组发送。有人能告诉我这方面的见解吗?

【问题讨论】:

  • 控制台中有什么?可以截图吗?
  • @NadiaCibrikova 添加了图片
  • 看起来你所有的 HTML 都被注释掉了,去掉 //s
  • @Nerdragen 然后至少应该打印 h3 标签 hello。我尝试了评论只是为了看看我是否至少有简单的 HTML
  • 您能告诉我们您在哪里使用Gallery 组件吗?

标签: reactjs use-effect admin-bro


【解决方案1】:

问题是你的箭头函数

  data.imageNameArray && data.imageNameArray.map(name=>{<h3>Hello</h3>})}

不返回任何内容。删除 {} 或添加 return 关键字。

name =&gt; element 是(name) =&gt; {return element;} 的缩写,如你所见,它是name =&gt; {element; return;}

【讨论】:

  • 我认为这是正确的答案。另一种方法是将{} 替换为()。这与不使用 return 关键字返回的目的相同。
  • 我只是错过了它。啊啊啊。谢谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-01-03
  • 2017-12-24
  • 2019-03-07
  • 2021-03-05
  • 2021-11-30
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多