Javascript MobX';这';在setter操作中未定义
我正在使用JS和Javascript MobX';这';在setter操作中未定义,javascript,reactjs,create-react-app,mobx,mobx-react,Javascript,Reactjs,Create React App,Mobx,Mobx React,我正在使用JS和mobxdecoration方法的最新create react应用程序设置 import { observable, action, decorate } from 'mobx' class UserStore { users = [] currentUser = {} setUsers(value) { this.users = value } } decorate(UserStore, { users: observable, curre
mobx
decoration
方法的最新create react应用程序设置
import { observable, action, decorate } from 'mobx'
class UserStore {
users = []
currentUser = {}
setUsers(value) {
this.users = value
}
}
decorate(UserStore, {
users: observable,
currentUser: observable,
setUsers: action
})
export default UserStore
我可以使用存储并读取空的用户
和当前用户
观察值,但当我尝试使用设置用户
操作时,我收到以下错误:
TypeError:无法设置未定义的属性“users”
这看起来像是未定义的
这个
,但这是大多数MobX教程显示的常见方式,不应该抛出错误…当将MobX与普通JavaScript一起使用时,不同的上下文可能会有点混乱。。。MobX的引入使这变得更容易
使用action.bound
的正确方法是:
setUsers: action.bound
或者我们可以使用lambda函数来确保上下文正确:
setUsers = value => {
this.users = value
}
任何更改都将确保setter函数的上下文是正确的,并且可以使用类
this
。查看更多详细说明。2021此处!答案中的链接已断开。这里谢谢@Emidomenge,我更新了链接