Javascript 如何访问react Context.Provider值中的另一个函数?
目前,我正在学习如何使用react上下文API。 我有一个react Provider类,在Javascript 如何访问react Context.Provider值中的另一个函数?,javascript,reactjs,Javascript,Reactjs,目前,我正在学习如何使用react上下文API。 我有一个react Provider类,在value={}中有一些状态数据和函数。如何从该值内的另一个函数访问该值内的函数 因此,子组件调用function1()。状态更改完成后,我想调用function2()并访问新状态 有可能得到这样的东西吗 类提供程序扩展组件{ 状态={ 福:“酒吧” } render(){ 返回(){ { this.setState({foo:'changed'},()=>{ //这里我想调用这个值中的下一个函数 这是函
value={}
中有一些状态数据和函数。如何从该值内的另一个函数访问该值内的函数
因此,子组件调用function1()
。状态更改完成后,我想调用function2()
并访问新状态
有可能得到这样的东西吗
类提供程序扩展组件{
状态={
福:“酒吧”
}
render(){
返回(){
{
this.setState({foo:'changed'},()=>{
//这里我想调用这个值中的下一个函数
这是函数2()
});
},
函数2:()=>{
//状态更改后由函数1调用
console.log(this.state)
}
}}>
{this.props.children}
}
}
}
如果我试着运行它,并从子对象启动function1()
,它会给我
TypeError:\u this2.function2()不是函数
我不明白为什么它试图访问\u this2
变量,因为我将它定义为访问this.function2()
难道我不可能做我想做的事吗?您可能会说,为什么function2()
是一个额外的函数,为什么我不在function1()的末尾添加代码。这是因为function2()
必须是一个独立的可访问函数
有人能帮我吗?谢谢 您可以尝试这样做:-
class Provider extends Component {
state = {
foo: 'bar'
}
an_independent_function() {
console.log(this.state);
}
render() {
return() {
<Context.Provider value={{
state: this.state,
function1: () => {
this.setState({ foo: 'changed' }, () => {
// HERE I WANT TO CALL THE NEXT FUNCTION IN THIS VALUE
this.an_independent_function();
});
},
function2: this.an_independent_function.bind(this)
}}>
{ this.props.children }
</Context.Provider>
}
}
}
类提供程序扩展组件{
状态={
福:“酒吧”
}
一个独立的函数(){
console.log(this.state);
}
render(){
返回(){
{
this.setState({foo:'changed'},()=>{
//这里我想调用这个值中的下一个函数
这是一个独立的函数();
});
},
function2:this.an_独立的函数.bind(this)
}}>
{this.props.children}
}
}
}
将两个箭头函数function1:()=>
更改为普通函数函数function1(){
@naga elixir jar这是不可能的,因为函数在一个对象中。这样:function1:function(){}
@naga elixir jar然后我会得到未处理的拒绝(TypeError):无法读取undefined的属性“setState”。非常感谢!这非常有效:)!尽管VS代码的语法高亮显示现在有点疯狂,但它仍然有效。