mobx class(observable - mobx) 方法中的变量是 NaN
variable is NaN in method of mobx class(observable - mobx)
我正在尝试更新可观察变量的计数器,并观察组件中的值,当我单击递增按钮时,this.counter 始终为 NaN,我不明白为什么。
组件:
@observer
class App extends Component {
constructor(props){
super(props)
}
render() {
const counter = this.props.appState;
return (
<div className={styles.description}>
<button onClick={counter.increment.bind(this)}>+</button>
Mobx class;
class AppState{
@observable counter=0
increment(){
debugger //its null..
this.counter++;
}
}
export default AppState
mainjs:
import AppState from './AppState'
...
var appState = new AppState
ReactDOM.render(
<App appState={appState}/>,
document.getElementById('root')
);
我该如何解决?
我认为你的问题是,当涉及到 this
所指的内容时,你需要保持尖锐的口吻。 App
中没有 counter
字段,这就是您在编写 bind(this)
.
时最终尝试参考的内容
尝试<button onClick={() => counter.increment()}>+</button>
。
我正在尝试更新可观察变量的计数器,并观察组件中的值,当我单击递增按钮时,this.counter 始终为 NaN,我不明白为什么。 组件:
@observer
class App extends Component {
constructor(props){
super(props)
}
render() {
const counter = this.props.appState;
return (
<div className={styles.description}>
<button onClick={counter.increment.bind(this)}>+</button>
Mobx class;
class AppState{
@observable counter=0
increment(){
debugger //its null..
this.counter++;
}
}
export default AppState
mainjs:
import AppState from './AppState'
...
var appState = new AppState
ReactDOM.render(
<App appState={appState}/>,
document.getElementById('root')
);
我该如何解决?
我认为你的问题是,当涉及到 this
所指的内容时,你需要保持尖锐的口吻。 App
中没有 counter
字段,这就是您在编写 bind(this)
.
尝试<button onClick={() => counter.increment()}>+</button>
。