关于react组件传值问题

父组件给子组件传值

父组件主要代码:

import React, {Component} from 'react';
import PropTypes from 'prop-types'; // 主要用来判断父组件传递过来的数据类型
class Com extends Component {
  render () {
    console.log(this.props) // 子组件中可以通过this.props来访问父组件中的数据
    return (
      <ul>
        {
          /*
          <li>
          {
            // <img src="" alt="" style="width: 60px;"/>
          }
          <img src="" alt="" style={ { width: '60px'} }/>
          <p>华为meta 30</p>
          <p>5999</p>
        </li>
        */
        }
        {
          this.props.prolist.map(item => ( // 回调函数自带返回值,如果返回的没有逻辑编写,可以直接通过这种方式返回,也可以通过其他方式返回
            <li key={item.proid}>
              <img src={  item.proimg  } alt="" style={ { width: '60px'} }/>
              <p>{ item.proname }</p>
              <p>{ item.price }</p>
            </li>
          ))
        }
      </ul>
    )
  }
}

Com.propTypes = {
  prolist: PropTypes.array // 定义父组件传递过来的prolist数据类型是数组
}

export default Com; // 暴露模块

 

子组件相关代码:

import React, { Component} from 'react';
import { getBannerlist, getProlist} from '@/utils/api.js';
import Prolist from './Prolist'; // 引入组件
export default class extends Component {
  constructor (props) {
    super(props);
    this.state = {
      bannerlist: [],
      prolist: []
    }
  }
  componentDidMount () { // 生命周期函数
    getBannerlist().then(data => {
      console.log(data.data)
      this.setState({
        bannerlist: data.data
      })
    })
    getProlist().then(data => {
      console.log(data)
      this.setState({
        prolist: data.data
      })
    })
  }
  render () {
    return (
      <div>
        <ul>
        { this.state.bannerlist.map((item) => { // 渲染轮波图数据
          return (
            <li key={ item.bannerid }>
              <img src={ item.img } />
              </li>
          )
         })}
         </ul>
         {
         /* 父组件给子组件传值时,在父组件调用子组件的时候给子组件定义一个自定义属性,属性值就是需要传递的数据,如果
         需要传递的知识布尔值,number类型或者是变量,需要用到react的{},表示绑定属性 */
         }
         <Prolist prolist={this.state.prolist}></Prolist> 
      </div>
    )
  }
}

通过以上我们就完成了react的父组件传值给子组件

 

 

posted @ 2019-11-13 22:28  奋斗,少年。  阅读(609)  评论(0编辑  收藏  举报