问题标签 [mobx]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
477 浏览

reactjs - 类似 React 复选框的组件应该作为 API 公开什么?

我正在构建一个组件,基本上就像一个复选框,但是是定制的设计。

我的组件就像

处理状态的正确方法是什么,以便我可以使用 Mobx 或 Redux 状态管理?换句话说:我怎样才能使这个组件对状态管理不可知,并允许从组件外部更改状态?

0 投票
1 回答
117 浏览

reactjs - 没有观察者无法使用注入

我目前正在使用类型化的 React (TSX) 和 mobx 进行状态管理。

我能够构建一个同时使用观察者和注入装饰器的组件。但是我无法构建一个在没有观察者的情况下使用注入的组件。

这通过了打字稿编译器

然而这失败了

带有以下错误消息

请协助我制作此错误消息的正面和反面。我敢打赌,打字已经过时了。否则在没有观察者的情况下使用注入实际上是无效的组合。

0 投票
1 回答
931 浏览

javascript - Listening for array changes using MobX

I just started learning MobX today and I want to listen for all array changes (insertion, deletion, etc) using MobX. An example would illustrate this better:

If I add or remove an item from todos, the list isn't updated. In order to make it update, I need to wrap observer around TodoList. The @observer on TodoListContainer doesn't do anything because I'm not accessing any observed properties. However, just for learning purposes, I want to use observer only on containers. I want to make the container rerender every time todos changes.

One way to do this is to do anything in TodoListContainer that iterates through all of todos. For example, in TodoListContainer.render, I can add for (let todo of todos) {} or todos.forEach(_ => _). Is there a better way to do it? For example, in Ember Data, you can do todos.[] to represent listening to all changes in todos.

0 投票
1 回答
674 浏览

arrays - Export and import observable MobX React Native

I am new to React Native and very new to MobX, only realising i needed it when my first project demanded dynamically updating and changing props/store between files.

Here is the github of the project: https://github.com/Kovah101/GenreGeneratorv1

I am trying to build an app that generates the name of random genre of music. My main file renders all the components and has a small console.log to check that random numbers are being generated. I don't get any errors here

Next, GenerateButton renders a button with an onClickevent that generates an array of random numbers, these get checked by mainOriginaland work correctly. I also use MobX to make randomNumbers observable as it is constantly updated and will be passed to the final file genreSelector.

genreSelector should use the array of random numbers map them to the size of the 3 different genre arrays, then render 3 boxes, each with one of the random genres from each array. However I get unexpected tokens at 'chosenRandoms' if i set it to be a 'var' and the same again at 'get randomGenres`, my understanding is they need to be something.

Does anybody have any ideas on what i'm doing wrong? If i take the var and get out then i get an error at the end of the math manipulation line. I must be misusing something. Thanks for any help, I can provide more of my code but i dont think the problem is in the stylesheet or index.

0 投票
1 回答
150 浏览

javascript - MobX @observable 装饰器从商店中删除一个字段

我正在尝试了解 MobX 并创建一个简单的商店:

window.store不包含字段someField。没有这个装饰器字段存在于对象中。webpack.config 中的加载器:

0 投票
1 回答
1843 浏览

reactjs - 没有装饰器的reactjs mobx不起作用

我正在尝试mobxreact. 由于我使用 生成了我的应用程序create-react-app,因此我不能使用 mobx 提供的装饰器。

鉴于我们可以按照本文档使用不带装饰器的 mobx:https ://mobxjs.github.io/mobx/best/decorators.html

这是我创建的一个组件:

这是对上述组件的简单调用:

现在,当我运行上述组件时,出现错误:Uncaught TypeError: (0 , _mobxReact2.default) is not a function(…)控制台中没有显示任何内容。

我在这里做错了什么?

0 投票
1 回答
754 浏览

javascript - 对数组中所有对象的可观察属性进行单个 MobX 自动运行或反应

我有课@observable(所有例子都是打字稿/伪代码)

还有一些功能,例如:

我想isVisible对任何对象的变化做出反应。

我可以枚举数组并制作如下内容:

但是我可以用一个功能做到这一点吗?
一种“对元素的属性变化做出反应的数组观察者”。

像这样的东西:

0 投票
3 回答
3594 浏览

reactjs - React + Mobx:尝试更新商店时“this”为空

刚开始使用 Mobx 和 React 并且无法更新商店。单击按钮时出现错误,该按钮应更新“me”属性:

我的店铺:

组件:

我可能错过了它如何工作的一些基本部分,但无法弄清楚。

0 投票
4 回答
12720 浏览

reactjs - React Mobx - 商店更改后组件不更新

使用 Mobx,在更新商店(即单击按钮)后,组件不会重新渲染。我已经安装了 mobx devtools,它在初始加载后什么都没有显示,并且控制台中没有错误。任何想法我做错了什么?

商店.js:

布局.js:

index.js:

0 投票
2 回答
16142 浏览

reactjs - mobx - 主要装饰器必须附加到类声明

我想使用 MobX 装饰器,但是当我尝试运行我的代码时,我收到以下错误消息:

我的应用程序将数据存储在 nedb 的数据存储中,我想用 mobx 观察它们。

例如,如果我有以下代码:

当我启动我的电子应用程序时,我使用以下命令:

此外,所有 devDependencies 和 Dependencies 都添加到我的 package.json 中。

我的“开始”命令中是否有任何错误或对 observable 的概念有任何误解?