【发布时间】:2023-04-02 19:06:01
【问题描述】:
页面加载后,我看到“hi2”
当我单击按钮时,什么也没有发生。我也试过setUser。
我怀疑我只是在编辑道具本身,而 observable 没有被触发?
查看它在全新的 rails/react 环境中不起作用的示例代码:https://github.com/bufordtaylor/mobxtest
- 克隆
- 捆绑
- 导轨 s
- (在另一个进程中)./bin/webpack-dev-server --host 127.0.0.1
- 导航到 localhost:3000
=======================
更新:
我已将其简化为基本形式,消除了可能的导入错误、提供程序错误或构造函数错误。
在这里
import React from 'react'
import ReactDOM from 'react-dom'
import { observable, action, computed } from 'mobx';
import { Provider, inject, observer } from 'mobx-react';
class UserStore {
@action setUser(val) {
console.log(val);
this.user = val;
}
@observable user = "default";
}
const userStore = new UserStore();
@observer
class Hello extends React.Component {
render() {
return (
<div>
hi2 {this.props.userStore.user}
<button onClick={this.props.userStore.setUser.bind(this,"fwefwe")}>faew</button>
</div>
)
}
}
document.addEventListener('DOMContentLoaded', () => {
ReactDOM.render(
<Hello userStore={userStore} />,
document.getElementById('app'),
)
})
【问题讨论】:
-
It works for me。你能弄清楚你的情况有什么不同吗?
-
不走运。我将您的代码直接复制到我的编辑器中。 @Tholle。
-
这很烦人。我看到的唯一看起来有点可疑的是
import UserStore from '../bundles/User/stores/UserStore';。../bundles/User/stores/UserStore是预期的导入吗? -
无赖。可以尝试将
transform-decorators-legacy放在 babel 插件列表的首位吗? -
我为这个问题发疯了。从昨天下午 4 点开始,我就在笔记本电脑前弯腰驼背,几乎没有睡觉,喝了太多咖啡,对我的妻子大发雷霆,最后……我有了一个决心。谢谢@Tholle!
标签: reactjs mobx mobx-react