【发布时间】:2020-06-13 19:45:40
【问题描述】:
我正在开发一个反应应用程序,所以我需要在 Context 组件的状态发生变化时立即更新 Context 组件的所有子组件,但我无法获取更新后的上下文值。
export default class Home extends Component{
state = {
user:{name:"Rob"},
}
componentDidMount() {
this.setState({user:this.context.user});
}
render(){
return(
<DetailsConsumer>
{value=>(
<button onClick={value.setName} >
)}
</DetailsConsumer>
);
}
class DetailsProvider extends Component{
state={
user:{}
}
setName= ()=>{
this.setState({user:{name:"Hasindu"}})
}
render(){
return(<DetailsContext.Provider value={
{user:this.state.user,
changeName:this.changeName
}
}>
{this.props.children}
</DetailsContext.Provider>);
}
}
const DetailsConsumer = DetailsContext.Consumer;
export{DetailsConsumer,DetailsProvider,DetailsContext};
所以我需要的是,当我单击 Home 类的按钮并调用 DetailsProvider (Context) 的 setName() 方法时,我需要将上下文状态更新为 setName() 方法中的对象,我还需要获取更新后的值到我的 Home 类。[这意味着我需要使用该新值更新我的 Home 组件状态属性用户]
【问题讨论】:
标签: javascript reactjs