跨组件传参 react

news/2024/7/8 6:17:55
 const Context = React.createContext();
        // console.log(Context.Provider);// 提供者
        // console.log(Context.Consumer);//使用者
        //孙子
       class Son extends React.Component{
            render(){
                return <div className="son">
                    <Context.Consumer>
                        {
                            (data)=>{
                               return <div><p>{data.name}</p>
                               <button 
                               onClick={data.setClassName.bind(this,'新的一天')}
                               >change</button></div>
                            }
                        }
                    </Context.Consumer>
                </div>
            }
        }
        //儿子
        class Parent extends React.Component{
            render(){
                return <div className="parent">
                        <Son />
                </div>
            }
        }
     //父
        class Wrap extends React.Component{
            state = {
                name:'凌晨两点半'
            }
            render(){
                return <div className="wrap">
                <Context.Provider value={{...this.state,setClassName:this.setClassName.bind(this)}}>
                    <Parent />
                </Context.Provider>
                </div>
            }
            setClassName(name){
                this.setState({name})
            }
        }
        ReactDOM.render(<Wrap/>,document.querySelector('#app'))

http://www.niftyadmin.cn/n/2813903.html

相关文章

k8s之pod基础(下)

1.2 镜像拉取的策略 IfNotPresent 只有当镜像在本地不存在时才会拉取。&#xff08;先对本地进行排查&#xff0c;本地有该镜像直接使用&#xff0c;本地没有该镜像则选择在仓库中拉取&#xff09; Always 总是从仓库拉取镜像&#xff0c;无论本地是否存在镜像&#xff08…

钉钉python实现审批数据库设计

为了实现工单系统&#xff0c;又不想自己去结合钉钉的组织架构实现一套审批流&#xff0c;所以采用钉钉的审批结合自己的系统去实现工单。 由钉钉实现审批流&#xff0c;软件实现查询&#xff0c;记录工单等。 在上一篇中已经实现了审批流程以及回调函数的实现和整个工单的逻…

高阶组件 基础模板 react

function Dialog(Component){return class extends React.Component{render(){return <Component />}}}class DialogComponent extends React.Component{render(){return <div classNamebox>凌晨两点半</div>}}let DialogDom Dialog(DialogComponent )…

高阶组件

高阶组件 高阶组件是什么他能给我们带来什么他的优点是什么

react 路由基础配置解释 模板 精简

路由的基本用法 // 下载第三方包 react-router-domimport {BrowserRouter,Route,Redirect,Link,NavLink} from react-router-dom;//在组件当中class Index extends Component{render(){return <BrowserRouter><Route path{} component{} exact/></BrowserRoute…

js监听浏览器变化的函数,大于500px时,打印console.log('hello'),且只打印一次

let str ;window.onresize function(){if(document.body.clientWidth> 500){if(str ){strhello;console.log(str);}else{return;}}}

redux 解析

下载第三方包 && 并且引入 const { createStore } require(redux);console.log( createStore ); // [Function: createStore] 是一个函数可以进行调用const { createStore } require(redux);let reducer (state,action)>{// action默认是{ type: redux/INITb.2…

微信小程序开发 模拟器上 获取不到input 框的焦点的解决办法 原因

在输入框的位置长按 Windows10笔记本上运行微信小程序开发者工具&#xff0c;输入框&#xff08;input&#xff0c;textarea&#xff09;没有焦点&#xff0c;只能在真机调试&#xff0c;效率太低。 后来发现是Window10对笔记本高分屏支持不好&#xff0c;要DPI缩放&#xff0…