MyContext.js
import React from "react";
const MyContext = React.createContext('test');
export default MyContext;
我在一个单独的js
文件中创建了我的上下文,我可以在其中访问我的父组件以及我的子组件
父.js
import MyContext from "./MyContext.js";
import Child from "./Child.js";
class Parent extends Component {
constructor(props) {
super(props);
this.state = {
Message: "Welcome React",
ReturnMessage:""
};
}
render() {
return (
<MyContext.Provider value={{state: this.state}}>
<Child />
</MyContext.Provider>
)
}
}
所以我用提供者上下文创建了父组件并在提供者选项卡中调用子组件
Child.js
import MyContext from "./MyContext.js";
class Child extends Component {
constructor(props) {
super(props);
this.state = {
ReturnMessage:""
};
}
ClearData(context){
this.setState({
ReturnMessage:e.target.value
});
context.state.ReturnMessage = ReturnMessage
}
render() {
return (
<MyContext.Consumer>
{(context) => <p>{context.state.Message}</p>}
<input onChange={this.ClearData(context)} />
</MyContext.Consumer>
)
}
}
所以在孩子中通过使用Consumer
,我可以在孩子渲染部分显示数据。
当我想从消费者那里更新状态时,我遇到了一个问题。
如何更新提供者状态或操纵提供者状态?