react 跨层级组件传值context
利用 定义一个React.createContext默认值 之后在数据源组件中外层包裹Provider进行传值 之后在接收组件的外层包裹Consumer接收数据回调使用
传值
import React, { Component } from 'react';
import Fa from './fa';
export const ProductContext = React.createContext(0);
export const { Provider, Consumer } = ProductContext;
export default class Grend extends Component {
constructor(props) {
super(props);
this.state = {
name: '小饼干',
index: 0
};
}
changeIndex = () => {
const { index } = this.state
this.setState({
index: index + 1
})
}
render() {
const { index } = this.state
return (
<Provider value={index}>
<button onClick={this.changeIndex}>报数</button>
<Fa />
</Provider>
)
}
}
接收
import React, { Component } from 'react';
import { Consumer } from './grend'
export default class Ch extends Component {
render() {
return (
<Consumer>
{theme =>
<div>我是{theme}号小饼干</div>
}
</Consumer>
)
}
}


浙公网安备 33010602011771号