组件传参

基础传参props
传数据

在子组件中
this.props.age获取数据
传方法
setAge=v=>this.setState({age:v})
在子组件使用

this.props.setAget(15)}>`

上下文传参context
特点:引入context数据,实时更新,当一个数据发生改变,所有引入数据的视图都会发生改变

【父组件】
1.导入类型检测
import PropTypes from 'prop-types'`
2.定义导出的数据类型
static childContextTypes ={
color:PropTypes.string,
setColor:PropTypes.func,

3.获取需要传参的内容
getChildContext(){
return {
color:this.state.color,
setColor:v=>this.setState({color:v})
}
}

【子孙组件】

1.定义上下文数据
static contextTypes = {
color:PropTypes.string,//字符串颜色类型
setColor:PropTypes.func,//方法类型
}
2.使用上下文数据

Child组件


3.使用上下文方法

上下文方式传递(context provider consumer)
【定义组件】
1.定义上下文组件
import React, { Component } from 'react';
let {Consumer,Provider} = React.createContext();
export {Consumer,Provider};

【父组件】
1.导入
import {Provider} from './context' //导入供应商组件
2.用provider包裹子元素,并传递value数据
value={{num:this.state.num,
setNum:this.setNum}}>

【子组件】
1.导入
import {Consumer} from './context' //导入消费者组件
2.Consumer中的context获取数据

redux react-redux 全局数据状态共享

1.安装
npm i redux react-redux
2.从react-redux导入Provider
import {Provider} from 'react-redux'
3.把根组件替换为:



4.在Provuder中添加数据仓库

5.编写store仓库,并导入仓库
6.编写store
①.redux导入;
②.reducer初始数据方法
③.actions处理数据动作
④.导出仓库
7.在组件中使用
①.导入链接
②.导出组件

你可能感兴趣的:(组件传参)