账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    react mobx 语法解析错误 @observable, unexpected token ??
    28
    0
    完整代码如下:<!DOCTYPE html><html><head> <meta charset="utf-8" /> <title>react demo</title> <script crossorigin src="https://unpkg.com/react@17/umd/react.development.js"></script> <script crossorigin src="https://unpkg.com/react-dom@17/umd/react-dom.development.js"></script> <script src="https://cdn.bootcdn.net/ajax/libs/mobx/6.3.2/mobx.umd.development.js"></script> <script src="https://cdn.bootcdn.net/ajax/libs/mobx-react-lite/3.2.0/mobxreactlite.umd.development.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/babel-core/5.8.23/browser.min.js"></script></head><body><div id="app"></div><script type="text/babel"> const { createContext, useState, useContext, useEffect } = React; const { Provider, Consumer }=createContext(); const { observable, action} = mobx; const { useLocalStore, observer, Observer } = mobxReactLite; class Store { @observable // 这种写法报错 count = 0; @action handleCount() { this.count += 1; } } const store = new Store(); const Counter = observer((props) => { const store = useLocalStore(() => ( { count: 1, get getCount() { return store.count; }, handleCount() { store.count += 2; } } )); return ( <Provider value={store}> {props.children} </Provider> ); }); const CounterFunction = observer((props) => { const [num, setNum] = useState(10); const context = useContext(Counter); console.log(context, 'xz100') // 打印不出来? useEffect(() => { console.log('num change', Counter); }, [num]); return ( <div> <p>num: {num}</p> </div> ); }) function App() { return ( <div className="App"> <Counter> <CounterFunction/> </Counter> </div> ); } ReactDOM.render( <App />, document.getElementById('app') );</script></body>
    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 小萌货- 普通会员 1楼

      在React中,@observable是一个特性,用于在组件中使用可变状态变量。然而,如果你在React中看到语法错误@observable, unexpected token,这可能表示你正在使用的语法不符合React的最佳实践。

      在这个错误中,@observable后面应该跟着一个名称,例如my observable。然后,你可以在组件中使用这个变量。

      例如:

      ```jsx import { observable } from 'mobx';

      class MyComponent extends React.Component { @observable myObservable = 0;

      render() { return (

      {this.myObservable === 5 ? (

      My observable is 5

      ) : (

      My observable is not 5

      )}
      ); } } ```

      在这个例子中,我们使用了@observable来声明一个可变状态变量myObservable。然后,在render方法中,我们检查myObservable的值是否为5。如果是,我们返回一个<p>元素,显示My observable is 5。否则,我们返回一个<p>元素,显示My observable is not 5

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部