mobx装饰师不';不能使用Typescript
我刚刚开始开发一个新项目,在其中我使用mobx作为react web应用程序和react原生移动应用程序之间的共享状态管理核心模块 核心模块使用typescript,由两个应用程序项目编译和使用 我的问题是,当存储区(来自核心模块)中的mobx装饰师不';不能使用Typescript,typescript,decorator,mobx,mobx-react,Typescript,Decorator,Mobx,Mobx React,我刚刚开始开发一个新项目,在其中我使用mobx作为react web应用程序和react原生移动应用程序之间的共享状态管理核心模块 核心模块使用typescript,由两个应用程序项目编译和使用 我的问题是,当存储区(来自核心模块)中的@observable属性发生更改时,这两个项目中的组件都不会重新呈现 当我在每个项目中创建具有相同定义和逻辑的存储时,组件会按预期重新渲染。我还将核心模块的一部分转换为使用babel cli传输的javascript ES6,它也可以按预期工作 我相信这个问题与
@observable
属性发生更改时,这两个项目中的组件都不会重新呈现
当我在每个项目中创建具有相同定义和逻辑的存储时,组件会按预期重新渲染。我还将核心模块的一部分转换为使用babel cli传输的javascript ES6,它也可以按预期工作
我相信这个问题与将从Typescript编译的存储导入到非Typescript项目有关,但我无法克服它
其他信息:
.ts
存储文件:
import { observable, action } from 'mobx'
export class UserStore {
@observable loading = false;
@action login() {
this.loading = true;
setTimeout(() => {this.loading = false},1000)
}
}
export const userStore = new UserStore();
.tsconfig
文件:
{"compilerOptions": {
"lib": ["es6", "dom", "es2015"],
"module": "commonjs",
"target": "es5",
"moduleResolution": "node",
"declaration": false,
"outDir": "lib",
"experimentalDecorators": true
},
"include": ["index.ts", "src" ]}
打字稿版本:2.4.1
所有项目都使用最新的mobx
和mobx-react
版本
react和react原生项目都使用常规巴别塔
使用存储的组件(我已配置了提供程序):
@inject('userStore')
@观察者
类加载扩展了组件{
组件willmount(){
this.props.userStore.login();
}
render(){
返回(
this.props.userStore.loading?loading…:loaded。。。
) }}
您可以尝试使用mobx.useStrict
来确保在将可观察值设置为新值时不会将其重新写入简单值。这里也有同样的问题。你解决了吗?@BrickYang在本期中看到了对我有效的解决方案:你可以尝试使用mobx.useStrict
,以确保在将可观察值设置为新值时不会将其重新写入简单值。这里也有同样的问题。你解决了吗?@BrickYang在这个问题上看到了对我有效的解决方案:
@inject('userStore')
@observer
class Loading extends Component {
componentWillMount() {
this.props.userStore.login();
}
render() {
return (
this.props.userStore.loading ? <div>loading...</div> : <div>loaded...</div>
) }}