Ken428965 2022-09-30 19:55 采纳率: 53.9%
浏览 42
已结题

react,如何让盒子里的各项数据自动获取数据库里相对应的数据?

在使用的react版本如下:

img


数据库已连接成功:

img


通过postman和浏览器地址栏输入接口地址,均能成功获取到数据:

img


已写的代码如下:

import React from 'react';
import { Grid } from 'antd-mobile';
import './style.css';
import axios from 'axios';
let arr = [{
  p: '家住琶洲',
  span: '前景可期',
  src: require('./1.jpg')
}, {
  p: '家住琶洲',
  span: '前景可期',
  src: require('./2.jpg')
}, {
  p: '家住琶洲',
  span: '前景可期',
  src: require('./3.jpg')
}, {
  p: '家住琶洲',
  span: '前景可期',
  src: require('./4.jpg')
}]

// export default () => {
  export default class Mygroup extends React.Component {
  state = {
    // 租房小组数据
    groups: []
  }
  // 获取租房小组数据的方法
  getGroups() {
    const res = axios.get('http://localhost:8080/home/groups',{
      params:{
        area: 'AREA%7C88cff55c-aaa4-e2e0'
      }
    })
    this.setState({
      // groups: res.data.body
    })
  }
  componentDidMount() {
    this.getGroups()
  }
  render() {
    return(
      <div className='grid'>
      <Grid columns={2} gap={4}>
      {arr.map((item,index) => {
      return (
        <Grid.Item key={index}>
        <div className='grid-demo-item-block'
          onTouchStart={e => e.target.style.backgroundColor = 'gray'} 
          onTouchEnd={e => e.target.style.backgroundColor = 'white'}
        >
          <div className='g'>
            <p>{item.p}</p>
            <span>{item.span}</span>
          </div>
          <img src={item.src} alt='' />
          </div>
        </Grid.Item>
      )
    })}
    </Grid>
    </div>
    )
  }
}

目前效果如下:

img


请问如何才能将四个盒子里的图片、标题以及内容都自动获取到数据库里相对应的数据?
如果有数量众多的盒子需要自动获取相对应的数据,请问有没有更便捷的方法实现想要的效果?

  • 写回答

1条回答 默认 最新

  • Heerey525 前端领域新星创作者 2022-10-01 11:48
    关注

    将groups替换掉arr就好

    
    import React from 'react';
    import { Grid } from 'antd-mobile';
    import './style.css';
    import axios from 'axios';
     
    // export default () => {
      export default class Mygroup extends React.Component {
      state = {
        // 租房小组数据
        groups: []
      }
      // 获取租房小组数据的方法
      getGroups() {
        const res = axios.get('http://localhost:8080/home/groups',{
          params:{
            area: 'AREA%7C88cff55c-aaa4-e2e0'
          }
        })
        this.setState({
          groups: res.data.body
        })
      }
      componentDidMount() {
        this.getGroups()
      }
      render() {
        return(
          <div className='grid'>
          <Grid columns={2} gap={4}>
          {this.state.groups.map((item) => {
          return (
            <Grid.Item key={item.id}>
            <div className='grid-demo-item-block'
              onTouchStart={e => e.target.style.backgroundColor = 'gray'} 
              onTouchEnd={e => e.target.style.backgroundColor = 'white'}
            >
              <div className='g'>
                <p>{item.title}</p>
                <span>{item.desc}</span>
              </div>
              <img src={item.imgSrc} alt='' />
              </div>
            </Grid.Item>
          )
        })}
        </Grid>
        </div>
        )
      }
    }
     
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 10月4日
  • 已采纳回答 10月1日
  • 修改了问题 10月1日
  • 修改了问题 9月30日
  • 展开全部

悬赏问题

  • ¥50 comsol稳态求解器 找不到解,奇异矩阵有1个空方程返回的解不收敛。没有返回所有参数步长;pid控制
  • ¥15 怎么让wx群机器人发送音乐
  • ¥15 fesafe材料库问题
  • ¥35 beats蓝牙耳机怎么查看日志
  • ¥15 Fluent齿轮搅油
  • ¥15 八爪鱼爬数据为什么自己停了
  • ¥15 交替优化波束形成和ris反射角使保密速率最大化
  • ¥15 树莓派与pix飞控通信
  • ¥15 自动转发微信群信息到另外一个微信群
  • ¥15 outlook无法配置成功