美文网首页
react 跨级组件通信

react 跨级组件通信

作者: a不知所谓 | 来源:发表于2018-06-15 20:32 被阅读0次

跨级组件通信
所谓跨级组件通信,就是父组件向子组件的子组件通信,向更深层的子组件通信。跨级组件通信可以采用下面两种方式:

1.中间组件层层传递 props
2.使用 context 对象

使用 context 是一种可行的方式,context 相当于一个全局变量,是一个大容器,我们可以把要通信的内容放在这个容器中,这样一来,不管嵌套有多深,都可以随意取用。
使用 context 也很简单,需要满足两个条件:

1上级组件要声明自己支持 context,并提供一个函数来返回相应的 context 对象
2.子组件要声明自己需要使用 context

例如:

import React from 'react';
import Proptype from 'prop-types';

export default class Attented extends React.Component{
    constructor(props,context){
        super(props,context)
        let data=context.router.route.location.data;
        if(data&&Object.keys(data).length){
         window.localStorage.setItem('detali',JSON.stringify(data));
        }else{
            data:{}
        }
        this.state={
            data
        }
    
    }
    componentDidMount(){
         if(!Object.keys(this.state.data).length){
            this.setState({
                data:JSON.parse(window.localStorage.getItem('detali')) 
            })
         }   
    }
    render(){
        if(!Object.keys(this.state.data).length){
        return null
         }  
        return <div>
        <p>{this.state.data.target.question.title}</p>
        <p>{this.state.data.target.question.excerpt}</p>
        </div>
    }
}
Attented.contextTypes={
    router:Proptype.object.isRequired
}



相关文章

  • react 跨级组件通信

    跨级组件通信所谓跨级组件通信,就是父组件向子组件的子组件通信,向更深层的子组件通信。跨级组件通信可以采用下面两种方...

  • React 组件件通信2——非父子组件间通信

    孙辈级通信 当需要让子组件跨级访问信息时候,我们可以通过之前那篇React 组件之间的通信1——之父子之间的通信那...

  • 03-react-跨组件级通信Context

    react-跨组件级通信- Context 之前编写组件都是通过props或者state的方式来传递组件, 但组件...

  • 组件通信

    组件关系 组件关系可以分为父子组件通信、兄弟组件通信、跨级组件通信。 父子组件通信 1. 子组件使用 $emit(...

  • React native全局变量的使用(跨组件的通信)

    React native全局变量的使用(跨组件的通信) 标签(空格分隔): React React native全...

  • 「React Native」Event Bus,消息总线

    (一)父子间组件通信:   一般使用props,回调函数进行通信。(二)跨组件之间通信:  (1)React Na...

  • react之组件通信

    需要组件之进行通信的几种情况: 父组件向子组件通信 子组件向父组件通信 跨级组件通信 没有嵌套关系组件之间的通信 ...

  • 第七章 可复用性的组件详解(中)

    7.7 组件通信 组件关系可分为父子组件通信、兄弟组件通信、跨级组件通信 7.7.1 自定义事件—子组件给父组件传...

  • React组件通信的几种方式

    需要组件之进行通信的几种情况 父组件向子组件通信 子组件向父组件通信 跨级组件通信 没有嵌套关系组件之间的通信 1...

  • React中组件通信的几种方式

    需要组件之进行通信的几种情况 父组件向子组件通信 子组件向父组件通信 跨级组件通信 没有嵌套关系组件之间的通信 1...

网友评论

      本文标题:react 跨级组件通信

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