dva页面获取并循环遍历对象数组

首先在model层初始化函数里用service层已写好的接口

    subscriptions: {
        setup({ dispatch, history }) {
            history.listen((location) => {
                if (location.pathname === '/forum') {
                    dispatch({
                        type: 'query',
                        payload: location.query || {},
                    })
                }
            })
        },
    },

 effects: {
        *query({ payload = {} }, { call, put }) {
            let plateList = yield call(plate.query, payload)
            let { success, message, status, data } = plateList
            if (success) {
                yield put({
                    type: 'getPlate',
                    payload: data.data,
                })
            } else {
                throw plateList
            }

            const articleList = yield call(article.query, payload)
            success = articleList.success
            data  =articleList.data
            if (success) {
                yield put({
                    type:'getArticle',
                    payload:data.data
                })
            } else {
                throw articleList
            }
        },
}

然后在view层connect获取并处理数组对象数据

方法一:
//使用将元素插入数组的方法
const Forum = ({ forum }) => {
    let { plateList, articleList } = forum
    var plateNameList = []
    for (let x in plateList) {
     //采用动态增加html元素的方法增加
        plateNameList.push(<div key={x} className={styles.side_list}>
            <br /><p>{plateList[x].plateName}</p>
        </div>)
    }

    return (
        <div className={styles.forum}>
                    {plateNameList}
                </div>
        </div>
    )
}
export default connect(({ loading, forum }) => ({ loading, forum }))(Forum)

方法二:
//直接使用  _.map(dataSource, function (item) { })函数
   <TabPane tab="个人文章" key="1">
            {
              _.map(dataSource, function (item) {
                return (
                  <Row>
                    <Col>
                      <Card
                        key={item.id}
                        className={styles.card}
                        type="inner"
                        title="来自板块"
                        extra={[
                          <IconText text="删除" />,
                          <IconText text="只自己可见" />,]}
                      >
                        <div className={styles.articleName}>
                          <h1>{item.articleName}</h1>
                        </div>
                        <div className="text-card">
                          <div className={styles.imageRight}>
                          <Avatar shape="square" size="large" src={image} />
                          </div>
                          <h3>{userName}</h3>
                          <p>{description}</p>
                        </div>
                        <div className={styles.content} dangerouslySetInnerHTML={{ __html: item.content }}></div>
                      </Card>
                    </Col>
                  </Row>

                )
              })
            }
          </TabPane>

页面效果如下(虚拟效果,按数组数量自动增长的表):

dogbirdcat
yunfoofoo
barbarbar
bazbazbaz
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值