美文网首页
mobx结合useContext没有触发更新

mobx结合useContext没有触发更新

作者: CRJ997 | 来源:发表于2021-10-18 12:17 被阅读0次
    // mobx home store
    import {  observable, action } from 'mobx;
    
    class Home {
      @observable
      public a = 'button';
      
      @action
      setA =  (a: string) => {
        this.a = a;
      };
    }
    
    export default new Home();
    
    import React from 'react';
    // context.ts
    import homeStore from './homeStore';
    export default homeContext = React.createContext({
      homeStore
    });
    
    // componentA
    import React from 'react';
    import homeContext from './homeContext'
    
    export default function ComponentA (props) {
      const { a, setA } = useContext(homeContext);
    
      return (
        <button onClick={() => { setA('NICE') }}>{a}</button>
      );
    }
    

    点了之后按钮文字没有变化

    解决方案用mobx-react的inject和observer去装饰function component。

    相关文章

      网友评论

          本文标题:mobx结合useContext没有触发更新

          本文链接:https://www.haomeiwen.com/subject/ulfnoltx.html