美文网首页
react 子组件获取父组件传来的 props 问题

react 子组件获取父组件传来的 props 问题

作者: 易剑圣 | 来源:发表于2018-08-23 18:44 被阅读0次

平时我获取父组件 的props, 都是在子组件函数里  this.props.xxxx

父组件这样写

子组件这样写

这种情况,子组件在 componentDidMount 里面可以拿到 props,因为 父组件的值不是异步的。

然而,当父组的的值是异步,不如AJAX请求数据,子组件的componentDidMount 就获取不到 父组件的 props

父组件

子组件componentDidMount 里是拿不到 props

怎么解决这个问题呢, 这时候,componentWillReceiveProps 就显神威了,

看了生命周期,上面问题,用componentWillReceiveProps 

完美解决问题

下面介绍一个生命周期的定义:

1)componentWillMount(){}

在客户端和服务器上,在初始渲染发生之前立即调用一次 如果在这个方法中调用setState,

render()将看到更新的状态,并且只会执行一次,尽管状态改变。

2)componentDidMount(){}

 调用一次,只在客户端(不在服务器上),在初始渲染发生后立即 子组件的componentDidMount()方法在父组件的componentDidMount()方法之前被调用 setTimeout  setInterval  AJAX 在此之行,强烈建议

3)componentWillReceiveProps(nextProps){}

 在组件接收新props时调用。初始渲染不调用此方法。老的props可以用this.props  新值就用nextProps查看 在此函数中调用this.setState()不会触发附加的渲染。

4)shouldComponentUpdate(nextProps, nextState){}

 当正在接收新的道具或状态时,在渲染之前调用。 此方法必须返回falseortrue否则报错true则渲染,false则不渲染!在此声明周期中可以考虑是否需要进行渲染!避免不必要的性能浪费// 如果shouldComponentUpdate返回false,那么render()将被完全跳过,直到下一个状态改变。此外,不会调用componentWillUpdate和componentDidUpdate。 默认返回true// 如果性能是一个瓶颈,特别是有几十个或几百个组件,请使用shouldComponentUpdate来加快您的应用程序。returntrueorfalse

5) componentWillUpdate(nextProps, nextState){}

当正在接收新的props或state时立即调用。初始渲染不调用此方法// 您不能在此方法中使用this.setState()。如果您需要更新state以响应prop更改,请改用componentWillReceiveProps。

6)componentDidUpdate(nextProps, nextState){}

在组件的更新刷新到DOM后立即调用。初始渲染不调用此方法。当组件已更新时,使用此操作作为DOM操作的机会

7)componentWillUnmount(){}

 在组件从DOM卸载之前立即调用。在此方法中执行任何必要的清理,例如使计时器无效或清除在componentDidMount中创建的任何DOM元素。clearInterval or destroy

相关文章

  • react 子组件获取父组件传来的 props 问题

    平时我获取父组件 的props, 都是在子组件函数里 this.props.xxxx 父组件这样写 子组件这样写 ...

  • vue、react对比

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

  • react组件传值的几种方式

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

  • React父子组件间的另类操作

    React父子组件的数据流向通常是由父组件通过props传到子组件上,常规操作是父组件传入props给子组件调用,...

  • Vue组件间通信,与服务器端通信

    组件间通信 父组件与子组件通信: props down 子组件与父组件通信:events up 若父组件要想获取子...

  • react - 组件间的值传递

    父组件向子组件传值 父组件通过属性进行传递,子组件通过props获取 父组件ComentList引用子组件Comm...

  • Vue中给子组件绑定v-model🚀

    父组件使用子组件时,使用v-model指令,在子组件中使用value获取props的值 父组件 子组件

  • Vue父子组件间传值

    一、父组件向子组件传值(通过 props 属性) 父组件 子组件 子组件方法中通过 this.value 来获取数...

  • 2018-09-05

    组件传值问题 父组件给子组件传值应该使用props。子组件要给父组件传值,需要调用父组件传递的方法。props传值...

  • 3、React 组件通信之 React context

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

网友评论

      本文标题:react 子组件获取父组件传来的 props 问题

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