import React from "react"
import { observable } from "mobx";
import { observer } from "mobx-react"
import { computed, action } from "mobx"
@observer
export default class Dice extends React.Component {
@observable
value = 1;
@computed
get result() {
return this.value > 3 ? "YOU WIN" : "YOU LOSE"
}
@action
handleRoll = () => {
this.value = Math.floor(Math.random() * 6) + 1
}
render() {
return (
<div>
<br />
<button onClick={this.handleRoll}>Roll Dice</button> <br />
<p>The value is {this.value}</p>
<p>{this.result}</p>
</div>
)
}
}
现在,我已经使用了handleRoll函数的动作装饰器。我使用它是因为我的原始状态发生了变化,即每当我单击掷骰子按钮时,值都会发生变化(很可能)。现在,即使我删除了action decoartor,但仍然一切正常,没有错误。现在的问题是,如果我们能够完成改变状态的任务,那么为什么要采取行动呢?