mobx使用时取不到class的静态属性

发布于 2022-09-07 22:49:01 字数 764 浏览 27 评论 0

题目描述

this.props.name不显示,但是onclick触发的事件是有效的会将name的值变成‘ls'

写成class类取不到


import {observable,action,computed} from 'mobx'
class TodoList {
    @observable name = 'hi'
    @action change(){
        console.log('change')
        this.name = 'ls'
    }
}

export default new TodoList()

问题:P标签取不到值



@observer
class App extends React.Component {

  render() {
    return (
        <p>{this.props.todoList.name}</p> //这里取不到值不显示
   
    )
  }
}

export default App;

但是如果TodoList这样写,p标签就可以取到值

export default new TodoList('zs')

let TodoList = observable({
    name :'hi',
    change(){
        this.name = 'ls'
    }
})

export default TodoList

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

请你别敷衍 2022-09-14 22:49:02

1.先排除是不是decorator是否生效
2.如果生效,你需要把todoList当成一个属性传入进去

一杯敬自由 2022-09-14 22:49:01

终于解决了,在package.json里面添加plugins配置(用的是create-react-app创建的项目)

"babel": {
    "presets": [
      "react-app"
    ],
    "plugins": [// 添加
      "babel-plugin-transform-decorators-legacy"// 添加
    ]
  },
南…巷孤猫 2022-09-14 22:49:01

el": {

"presets": [
  "react-app"
],
"plugins": [// 添加
  "babel-plugin-transform-decorators-legacy"// 添加
]
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文