• mobx在hooks中使用


    创建仓库还是和之前一样,在 store/index.js 中

    import { observable } from "mobx";
    
    class store {
        @observable a = "1154545";
        @observable count = 1;
    
        @action
        setCount = () => {
            this.count++;
        }    
    }
    export default store;
    1. 注入store,这样既可以在class中使用,也可以在hooks中使用了
    // 注入store
    import { Provider } from 'mobx-react';
    import {store} from './store';
    
    <Provider store={store}>
      <Demo />
    </Provider>

       

      在class中使用

      

    import React, { Component } from 'react';
    import { inject, observer } from 'mobx-react';
    
    @inject('store')
    @observer
    class Demo1 extends Component { 
        render() {
            return <div>{this.props.count}</div>
        }
    }

      

      在hooks中使用

    import React from 'react';
    import { useObserver, Observer, useLocalStore } from 'mobx-react';
    import {store } from './store';
    
    // 方法1
    function Demo2() { 
        const localStore = useLocalStore(() => store);
        return useObserver(() => <div onClick={localStore.setCount}>{localStore.count}</div>)
    }
    
    // 方法2,更新Observer包裹的位置,注意这里包裹的必须是一个函数
    function Demo3() { 
        const localStore = useLocalStore(() => store);
        return <Observer>{() => <span>{localStore.count}</span>}</Observer>
    }
  • 相关阅读:
    第 9 章 类
    导入模块
    第 8 章 函数
    第七章 用户输入和while语句
    第六章 字典
    测试经理/组长职责
    测试的发展之路
    【转】测试流程
    一个网页通用的测试用例(借鉴他人的保存,加注释)
    QTP自动化测试框架简述
  • 原文地址:https://www.cnblogs.com/tommymarc/p/15768138.html
Copyright © 2020-2023  润新知