首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Mobx-react未呈现,但状态已更改

Mobx-react未呈现,但状态已更改
EN

Stack Overflow用户
提问于 2020-12-23 07:22:08
回答 1查看 93关注 0票数 1

我决定尝试Mobx,并面临着该组件对存储库中不断变化的字段缺乏响应的问题。我看过类似的话题,但我仍然不明白问题出在哪里。如果在更改后将属性值打印到控制台,则会看到实际结果。

index.js

代码语言:javascript
复制
import React from 'react';
import ReactDOM from 'react-dom';

import { Provider } from "mobx-react";
import AppStore from "./AppStore";

import App from './App';

ReactDOM.render(
  <React.StrictMode>
    <Provider AppStore={AppStore}>
      <App />
    </Provider>
  </React.StrictMode>,
  document.getElementById('root')
);

App.js

代码语言:javascript
复制
import React, { Component } from "react";
import { inject, observer } from "mobx-react";

@inject('AppStore')
@observer class App extends Component {
  render() {
    const { AppStore } = this.props;
    console.log(AppStore);
    return(
      <div className="App">
        { this.props.AppStore.counter }
        <hr/>
        <button onClick={this.props.AppStore.increment}>+</button>
        <button onClick={this.props.AppStore.decrement}>-</button>
      </div>
    )
  }
}

export default App;

AppStore.js

代码语言:javascript
复制
import { observable, action } from "mobx";

class AppStore {
  @observable counter = 0;
  @action increment = () => {
    this.counter = this.counter + 1;
    console.log(this.counter);
  }
  @action decrement = () => {
    this.counter = this.counter - 1;
    console.log(this.counter);
  }
}

const store = new AppStore();
export default store;
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-12-23 07:38:06

Since mobx@6.0.0 decorators are not enough。您还必须使用makeObservable手动使您的类可观察。

代码语言:javascript
复制
class AppStore {
  @observable counter = 0;

  constructor() {
    makeObservable(this);
  }

  @action increment = () => {
    this.counter = this.counter + 1;
  }
  @action decrement = () => {
    this.counter = this.counter - 1;
  }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65417105

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档