Javascript `当作为react组件prop调用时,此属性在对象方法上未定义

Javascript `当作为react组件prop调用时,此属性在对象方法上未定义,javascript,reactjs,mobx,Javascript,Reactjs,Mobx,我有这个React组件(使用Mobx、stores等): 从“React”导入React; 从“mobx”导入{observable}; 从'mobx react'导入{observer}; 从“/../components/Counter”导入计数器; 常数CountStore={ numbr:可观察(1), 获得100(){ 返回此。numbr*100; }, 更新枚举器(e){ console.log(this); 如果((e.target.value>=1)和&(e.target.va

我有这个React组件(使用Mobx、stores等):

从“React”导入React;
从“mobx”导入{observable};
从'mobx react'导入{observer};
从“/../components/Counter”导入计数器;
常数CountStore={
numbr:可观察(1),
获得100(){
返回此。numbr*100;
},
更新枚举器(e){
console.log(this);
如果((e.target.value>=1)和&(e.target.value),
);
您用于将
作为上下文传递给
updateNumber
函数:

<input type="text" onChange={store.updateNumber.bind(this) } />

我使用


很确定这是一个范围问题,你的
这个
的上下文没有绑定到
updateNumber
我已经尝试过了,我正在使用Next.js,这样做会导致以下错误:无法读取UndefinedTery的属性'target',再添加一个
()
,如下:
onChange={store updateNumber.bind(this)()
如果有效,我将编辑我的答案。请参见一个示例,说明如何将
绑定为
handleClick
的上下文,并同时使用
e
(事件)。基本上,您需要的是在构造函数中进行绑定,如codepen示例所示。使用箭头函数
updateNumber=(e)=>{}
而不是
updateNumber(e){}
您应该阅读有关箭头函数和词法作用域的内容。如果您使用箭头函数,则不必使用
.bind()
,因为函数内部的
引用外部作用域(即CountStore)