zoukankan      html  css  js  c++  java
  • React CreateContext 组件间通信除 redux ,mobx,redux-saga之外,本身具有的方法

    使用场景

      通常使用在一些组件间传值问题,但是主要是层级嵌套不深数据逻辑不复杂情况下数据传输。

    使用方法

    /**
     * 组件通信简单处理方式,
     * export const { Provider, Consumer } = React.createContext("");
     */
    import React from 'react';
    import { Button } from 'antd';
    
    export const { Provider, Consumer } = React.createContext("");
    class Child1 extends React.Component {
        render() {
            return (
                <Consumer>
                    {(value) => {
                        return `class compoents value name : ${value.name} value age : ${value.age}`
                    }}
                </Consumer>
            )
        }
    }
    
    
    const Child2 = () => {
        return (
            <Consumer>
                {(value) => {
                    return `function compoents type : ${value.name} value age : ${value.age}`
                }}
            </Consumer>
        )
    }
    
    const CenterComp = () => {
        return (
            <div>
                <Child1 /><br/>
                <Child2 />
            </div>
        )
    } 
    
    class ContentComp extends React.Component{
        constructor(props) {
            super(props);
            this.state={
                paytype: true
            }
        }
        render() {
            const { paytype } = this.state; 
            const _item =  paytype? {name: 'zhangsan',age: '15'}:{name: 'lisi',age: '18'};
            return (
                <Provider value={_item}>
                    <CenterComp />
                    <Button type="primary" onClick={() => this.setState({paytype: !this.state.paytype})}>点击更改状态</Button>
                    <p>当前组件状态: {`${this.state.paytype}`}</p>
                </Provider>
            )
        }
    }
    
    export default ContentComp;
  • 相关阅读:
    最小二乘拟合(scipy实现)
    接口实例
    类的继承:员工和老板
    设计模式(Design Patterns)
    创建类
    面向对象1
    java随机数:彩票抽奖 + 验证码
    判断字符串中字符出现的次数+去除空格
    输出二维数组所有元素的和
    输出 一维数组中最大的数+数组遍历
  • 原文地址:https://www.cnblogs.com/GongYaLei/p/13712522.html
Copyright © 2011-2022 走看看