iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >React传递参数的方式有哪些
  • 274
分享到

React传递参数的方式有哪些

2023-06-20 12:06:57 274人浏览 薄情痞子
摘要

本篇内容介绍了“React传递参数的方式有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!父子组件之间传递参数父组件往子组件传值,直接用t

本篇内容介绍了“React传递参数的方式有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

父子组件之间传递参数

父组件往子组件传值,直接用this.props就可以实现

在父组件中,给需要传递数据的子组件添加一个自定义属性,在子组件中通过this.props就可以获取到父组件传递过去的数据

// 父组件 render() {        return (                // 使用自定义属性传递需要传递的方法或者参数                <ShopUi toson={this.state}></ShopUi>            )    } //子组件 //通过this.props.toson就可以获取到父组件传递过来的数据

如果还需要往孙组件传递那么在子组件通过自定义属性继续传递就行了

tograndson={this.props.toson}

孙组件通过this.props.tograndson获取到数据

子组件给父组件传值的话,需要在父组件设置接收函数和state,同时将函数名通过props传递给子组件

也就是给子组件传入父组件的方法,在子组件进行调用

//孙子组件export default class Grandson extends Component{    render(){        return (            <div style={{border: "1px solid red",margin: "10px"}}>        {this.props.name}:                <select onChange={this.props.handleSelect}>                    <option value="男">男</option>                    <option value="女">女</option>                </select>            </div>        )    }}; //子组件export default class Child extends Component{    render(){        return (            <div style={{border: "1px solid green",margin: "10px"}}>                {this.props.name}:<input onChange={this.props.handleVal}/>                <Grandson name="性别" handleSelect={this.props.handleSelect}/>            </div>        )    }}; //父组件export default class Parent extends Component{     constructor(props){        super(props)        this.state={            username: '',            sex: ''        }       },    handleVal(event){        this.setState({username: event.target.value});    },    handleSelect(value) {        this.setState({sex: event.target.value});    },    render(){        return (            <div style={{border: "1px solid #000",padding: "10px"}}>                <div>用户姓名:{this.state.username}</div>                <div>用户性别:{this.state.sex}</div>                <Child name="姓名" handleVal={this.handleVal} handleSelect={this.handleSelect}/>            </div>        )    }}

前一段时间有人问过我这样一个问题,constructor里面的super()是干嘛用的?

总结一下:

  如果要在子类的constructor里使用this,必须调用父类constructor,否则就拿不到this

  那么问题就来了,如何调用父类的constructor呢? 通过super()

  如果要在constructor里使用父组件传递过来的参数,必须在调用父组件super时,传递参数给父组件的constructor

  如果不在constructor里面使用this,或者参数,就不需要super ; 因为React以及帮你做了this,props的绑定

路由传参

  安装 npm install react-router-dom --save-dev

  定义路由(一般会放在外面)

 <HashRouter>     <Switch>         <Route exact path="/" component={Home}/>         <Route exact path="/detail" component={Detail}/>     </Switch> </HashRouter>

当页面跳转时

<li  onClick={el => this.props.history.push({   pathname:'/detail',      state:{id:3}})}></li>

接收    通过this.props.history.location可以获取到传递过来的数据

路由传参可能会有这个问题,就是只有在路由定义时挂载的组件中才会有props里面的location history match

路由上挂载的那个组件一般都是Container.js,一般我们会往下分出UI.js组件,在这里面进行点击跳转,UI组件props里没有location history match

需要用到高阶组件withRouter

 状态提升

  将多个组件需要共享的状态提升到离他们最近的那个公共父组件上,然后父组件通过props分发给子组件

context

  当某个组件在自己的context中保存了某个状态,那个该组件下的所有子孙组件都可以访问到这个状态,不需要中间组件的传递,而这个组件的父组件是没办法访问的

class Index extends Component {  static childContextTypes = {    themeColor: PropTypes.string  }  constructor () {    super()    this.state = { themeColor: 'red' }  }  getChildContext () {    return { themeColor: this.state.themeColor }  }  render () {    return (      <div>        <Header />        <Main />      </div>    )  }}

通过getChildContext()将属性传递给所有的子孙组件
提供 context 的组件必须提供 childContextTypes 作为 context 的声明和验证。 

class Title extends Component {  static contextTypes = {    themeColor: PropTypes.string  }  render () {    return (      <h2 style={{ color: this.context.themeColor }}>标题</h2>    )  }}

子组件要获取 context 里面的内容的话,就必须写 contextTypes 来声明和验证你需要获取的状态的类型,它也是必写的,如果你不写就无法获取 context 里面的状态。
Title 想获取 themeColor,它是一个字符串,我们就在 contextTypes 里面进行声明。

引入redux

  redux为React提供可预测化的状态管理机制

  redux将整个应用状态存储到store,store里保存着一个state状态树

  组件可以派发(dispatch)  行为 (action)  给store , 而不是直接通知其它组件

  其它组件可以通过订阅store中的状态state来刷新自己的视图

“React传递参数的方式有哪些”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

--结束END--

本文标题: React传递参数的方式有哪些

本文链接: https://www.lsjlt.com/news/296503.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • React传递参数的方式有哪些
    本篇内容介绍了“React传递参数的方式有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!父子组件之间传递参数父组件往子组件传值,直接用t...
    99+
    2023-06-20
  • python传递参数的方式有哪些
    在Python中,有以下几种方式可以传递参数:1. 位置参数:按照参数顺序传递,参数的位置和数量必须与函数定义中的参数一致。```p...
    99+
    2023-09-27
    python
  • c#参数传递的方式有哪些
    在C#中,参数传递的方式有以下几种:1. 值传递(By Value):将实参的值复制给形参,即在函数内部对形参的修改不会影响实参的值...
    99+
    2023-10-18
    c#
  • React传递参数的几种方式
    目录父子组件之间传递参数路由传参 状态提升context引入redux父子组件之间传递参数 父组件往子组件传值,直接用this.props就可以实现 在父组件中,给需要传递...
    99+
    2022-11-12
  • JavaScript函数参数的传递方式有哪些
    这篇文章主要介绍了JavaScript函数参数的传递方式有哪些,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。JavaScript使用一个变量...
    99+
    2022-10-19
  • java线程传递参数的方式有哪些
    在Java中,线程传递参数的方式有以下几种: 使用构造函数传递参数:可以在创建线程对象时,通过构造函数将参数传递给线程对象。通过...
    99+
    2023-10-27
    java
  • python可变参数的传递方式有哪些
    这篇文章主要讲解了“python可变参数的传递方式有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“python可变参数的传递方式有哪些”吧!1、包裹位置传递,所有的传入参数都会被args...
    99+
    2023-06-20
  • python中函数传递参数的方式有哪些
    本篇文章为大家展示了python中函数传递参数的方式有哪些,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。python可以做什么Python是一种编程语言,内置了许多有效的工具,Python几乎无所不...
    99+
    2023-06-14
  • Spring MVC传递接收参数方式有哪些
    这篇文章主要介绍“Spring MVC传递接收参数方式有哪些”,在日常操作中,相信很多人在Spring MVC传递接收参数方式有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Spring MVC传递接收参...
    99+
    2023-06-25
  • java传递参数的方法有哪些
    在Java中,传递参数的方法有以下几种:1. 值传递:基本数据类型(如int、char、boolean等)和字符串类型(String...
    99+
    2023-09-15
    java
  • SpringMVC中参数的传递方法有哪些
    这篇文章主要介绍“SpringMVC中参数的传递方法有哪些”,在日常操作中,相信很多人在SpringMVC中参数的传递方法有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”...
    99+
    2022-10-19
  • python函数参数传递的方法有哪些
    在Python中,函数参数传递的方法有以下几种:1. 位置参数传递:根据参数的位置顺序进行传递,参数的值与参数的位置一一对应。例如:...
    99+
    2023-10-19
    python
  • Python中函数参数传递方法有哪些
    这篇文章主要介绍“Python中函数参数传递方法有哪些”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Python中函数参数传递方法有哪些”文章能帮助大家解决问题。定义和传递参数parameters ...
    99+
    2023-07-06
  • Spring Data JPA中in条件参数的传递方式有哪些
    这篇文章主要介绍Spring Data JPA中in条件参数的传递方式有哪些,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!关于Spring Data JPA中自定义sql 条件的 in参数记录此文做一个记录,以便以后...
    99+
    2023-06-15
  • python函数的传递方式有哪些
    python中函数的传递方式有以下几种fun1(a,b,c)fun1(a,b,c)是直接将实参赋予行参,根据位置做匹配,即严格要求实参的数量与行参的数量位置相等。fun2(a=1,b=2,c=3)fun2(a=1,b=2,c=3)是根据键值...
    99+
    2022-10-23
  • qt多线程传递参数的方法有哪些
    在Qt中,有多种方法可以在多线程之间传递参数。以下是其中一些常用的方法:1. 构造函数传递参数:在创建新的线程对象时,通过构造函数将...
    99+
    2023-09-13
    qt
  • shell中脚本参数传递的方法有哪些
    这篇文章主要介绍了shell中脚本参数传递的方法有哪些,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。方式一:$0,$1,$2..采用$0,$1,$2..等方式获取脚本命令行传...
    99+
    2023-06-09
  • C++中函数传递的方式有哪些
    本篇文章为大家展示了C++中函数传递的方式有哪些,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。值传递:void fun(int x)  {  x +...
    99+
    2023-06-17
  • python list 参数传递方式
    定义一个方法,接收一个 id参数和一个 list 参数 def test(id, ids=[]): if id: ids.append(id) print ids test(id=1) test(...
    99+
    2023-01-31
    参数 方式 python
  • c语言函数参数传递方式有哪几种
    C语言函数参数传递方式有以下几种:1. 值传递(Pass by Value):将实际参数的值复制给形式参数,在函数内部对形参的修改不...
    99+
    2023-09-16
    c语言
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作