主要是createContext 中的Provider Consumer两个参数
import React, { Component, createContext } from "react";
{
}
const { Provider, Consumer } = createContext();
const Reduce = () => {
return (
<div>
<Consumer>
{(value) => <button onClick={value.reduce}>-</button>}
</Consumer>
</div>
);
};
const Add = () => {
return (
<div>
<Consumer>{(value) => <button onClick={value.add}>+</button>}</Consumer>
</div>
);
};
class allCart extends Component {
state = {
num: 10,
};
reduce = () => {
this.setState((preState) => {
return {
num: --preState.num,
};
});
};
add = () => {
this.setState((preState) => {
return {
num: ++preState.num,
};
});
};
render() {
return (
<Provider
value={{
num: this.state.num,
reduce: this.reduce,
add: this.add,
}}
>
<h1>我是一个可以加减的框框</h1>
<Consumer>
{(value) => (
<>
<Reduce />
<span>{value.num}</span>
<Add />
</>
)}
</Consumer>
</Provider>
);
}
}
export default allCart;
|