首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Mobx观察者的更改不会触发下一个JS中的重发器

Mobx观察者的更改不会触发下一个JS中的重发器
EN

Stack Overflow用户
提问于 2022-07-26 22:13:06
回答 1查看 166关注 0票数 0

我已经坚持了很长一段时间了,我不知道到底该怎么做。

我有两个组件

Navbar.tsx

代码语言:javascript
复制
import CoreButton from "../../core/CoreButton";
import {observer} from "mobx-react-lite";
import accountStore from "../../store/account.store";

function Navbar() {

    const onClick = () => {
        accountStore.login();
    }
    return (
        <header>

            <CoreButton
                onClick={onClick}>
                Do stuff
            </CoreButton>


        </header>
    )
}

export default observer(Navbar)

和一个Hero.tsx

代码语言:javascript
复制
import CoreButton from "../../core/CoreButton";
import {observer} from 'mobx-react-lite';
import accountStore from "../../store/account.store";
function Hero() {


    return (
        <section>

            <CoreButton>
                {accountStore.address}
            </CoreButton>

        </section>
    )
}

export default observer(Hero)

我有莫布克斯商店

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

configure({
    enforceActions: 'never',
})

class AccountStore {
    address: string | undefined;
    isLoading: boolean = false;

    constructor() {
        makeAutoObservable(this);
    }

    login() {
        this.address = "Hello World";
    }

}

const accountStore = new AccountStore()
export default accountStore;

因此,当我在Navbar上点击“做事情”按钮时,我期待“英雄”中的文本发生变化。

但这不会发生的。我试着用redux工具箱来做这件事,它起了作用。mobx只是没有与下一个JS一起工作,还是我在这里遗漏了一些东西。

我不想在这里进行任何类型的数据获取,当用户与应用程序交互时,Mobx Store将被使用,并在刷新时被重置。

谢谢

EN

回答 1

Stack Overflow用户

发布于 2022-07-26 23:06:58

那是因为

代码语言:javascript
复制
address: string | undefined;

由于某些原因,mobx不喜欢string | undefined,所以我将它改为

代码语言:javascript
复制
address: string = '';

而且起作用了!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73130298

复制
相关文章

相似问题

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