无法在没有装饰器支持的情况下使类成为mobx观察者 - “TypeError无法读取未定义的属性'观察者'”

问题描述 投票:1回答:1

这是index.js文件

import React from "react";
import ReactDOM from "react-dom";
import mobx, { observable, action, decorate } from "mobx";
import mobxReact from "mobx-react";

import "./styles.css";

const Main = mobxReact.observer(
  class Main extends React.Component {
    // @observable internalState = false;
    constructor(props) {
      super(props);
      this.internalState = false;
    }

    toggleMenu = () => {
      console.log("Toggle button");
      this.internalState = !this.internalState;
    };

    render() {
      return (
        <div className="App">
          <h1>Toggle State</h1>
          <input type="button" onClick={this.toggleMenu} value="Toggle" />
          <div style={{ paddingTop: "25px" }}>
            internalState {this.internalState.toString()}{" "}
          </div>
        </div>
      );
    }
  }
);

decorate(Main, {
  internalState: observable,
  toggleMenu: action
});

function App() {
  return <Main />;
}

const rootElement = document.getElementById("root");
ReactDOM.render(<App />, rootElement);

这是codesandbox代码的链接:https://codesandbox.io/s/k37v35vylv

由于这个codesandbox的模板不支持decorator语法,我试图使Main类成为没有observer@observer

我收到此错误:

enter image description here

错误文字:

TypeError: Cannot read property 'observer' of undefined

依赖关系:

enter image description here

javascript mobx mobx-react
1个回答
1
投票

mobx-react包中没有默认导出。所以我建议你可以像这样编码:import {observer} from 'mobx-react' enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.