美文网首页
react的通过props父组件向子组件传值

react的通过props父组件向子组件传值

作者: 水晶草720 | 来源:发表于2022-03-21 10:57 被阅读0次

Props 验证使用 propTypes,它可以保证我们的应用组件被正确使用,React.PropTypes 提供很多验证器 (validator) 来验证传入数据是否有效。当向 props 传入无效数据时,JavaScript 控制台会抛出警告。

#父组件
import React, { Component } from 'react'
import Navbar from './Navbar'

export default class App extends Component {
  render() {
    return (
        <div>
            <Navbar title="首页" leftshow={false} />
            <Navbar title="列表"  />
            <Navbar title="购物车" />
      </div>
    )
  }
}

你可以通过组件类的 defaultProps 属性为 props 设置默认值,实例如下:

#子组件 类组件

import React, { Component } from 'react'
import propTypes from 'prop-types'
export default class Navbar extends Component {
//第二种写法
    static propTypes = {
            title: propTypes.string,
            leftshow: propTypes.bool
    }

    static defaultProps = {
        leftshow: true
    }
   
    render() {
       let {title,leftshow}=this.props
      console.log(this.props)
    return (
        <div>
            <div> {leftshow && <button>return</button>}  nav-{title} </div>
      </div>
    )
  }
}
//第一种写法
// Navbar.propTypes = {
//     title: propTypes.string,
//     leftshow: propTypes.bool
// }
/**默认值 */
// Navbar.defaultProps = {
//     leftshow: true
// }

函数式组件通过props 传值,没有this,通过rfc创建函数式组件
直接通过props传值

# 子组件 函数式组件
import React, { Component } from 'react'
export default function Slidebar(props) {
    let { bg,position } = props;
    var obj1 = {
        left:0
    }
    var obj2 = {
        right:0
    }
    var obj3 = {
        background: bg,
        width:'200px',position:'fixed'
    }
    var styleObj= position==='left'?{...obj1,...obj3}:{...obj2,...obj3}
    return (
        <div style={styleObj}>
                <ul>
                    <li>Home</li>
                    <li>List</li>
                    <li>NewsList</li>
                    <li>Contact</li>
                    <li>Company</li>
                    <li>Personal</li>
                </ul>
        </div>
    )
}
 #父组件的函数式组件传值方式
import React, { Component } from 'react'
import Navbar from './Navbar' /*类组件*/
import Slidebar from './Slidebar' /**函数式组件 */
export default class App extends Component {
  render() {
    return (
        <div>
           <Navbar title="首页" leftshow={false} />
            <Navbar title="列表"  />
            <Navbar title="购物车" />
            {/* 函数式组件  */}
            <Slidebar bg="yellow" position="right"></Slidebar>
      </div>
    )
  }
}

相关文章

  • vue、react对比

    一、父子通信 1. 父组件通过props向子组件传值 vue:父组件 子组件接收 react:父组件: 子组件: ...

  • react 父子组件传值(兄弟传值)

    react中父子组件传值 父向子: 父组件通过自定义属性向子组件传值,子组件通过this.props.属性名接收子...

  • 复习Vue 组件间通信.md

    1. props/$emit 父组件向子组件传值:父组件通过props向下传递数据给子组件 子组件向父组件传值(通...

  • Vue CLI——组件间传值

    一、父子组件传值 1、父传子 (1)props 父组件向子组件传值,可以通过绑定属性传值;子组件通过props接收...

  • Vue3——组件传值 & v-model & 异步组件 & te

    一、父子组件传值 父组件通过props向子组件传值,子组件通过emit触发自定义事件传递新值给父组件。props:...

  • 父子组件传值

    1、父组件向子组件传值 父组件通过属性绑定的方式向子组件传值 子组件通过props接收注意:子组件只可以使用父组件...

  • Vue组件间通信

    Vue组件间通信 父子组间通信 通过props向子组件传值,通过事件向父级组件发送消息 通过props向子组件传值...

  • 3、React 组件通信之 React context

    React 组件之间的通信是基于 props 的单向数据流,即父组件通过 props 向子组件传值,亦或是子组件执...

  • react组件传值

    父组件向子组件传值 通过父组件的props属性向子组件传值 子组件:Children.js 父组件:Parent....

  • react组件传值的几种方式

    react 组件传值一、父组件传给子组件父组件通过props传递给子组件; 二、子组件传给父组件父组件通过prop...

网友评论

      本文标题:react的通过props父组件向子组件传值

      本文链接:https://www.haomeiwen.com/subject/begzdrtx.html