我知道MobX可以检测对象属性何时发生变化(在我们的例子中是myData.name),但是MobX如何知道User组件取决于 myData.name
class MyData {
@observable name = "John"
}
@observer
class User extends Component {
render() {
// here, User depends on myData.name, but how MobX know??
let { name } = this.props.myData;
我是Mobx的新手,对它有一些问题。
在Mobx中将一个可观察对象放在另一个可观察对象中可以吗?
我有一家商店:
class ObservableTasksStore {
@observable
tasks = [
new Task(111, 'clean the car', 'with soap plz, it is really important', Duration(7, TIME.DAYS), Duration(6, TIME.MONTHS), '2018-08-17T10:02:18.674Z'),
new T
我和mobx有个问题。事实上,我有一个简单的聊天室,它使用我自己定义的WebSocketService。虽然这个服务用我的API抽象交换,但是聊天本身处理消息的存储。
main.tsx (入口点)
import React from 'react';
import ReactDOM from 'react-dom';
import {App} from './app';
import {createBrowserHistory} from 'history';
import {createStores} from "app
因此,我在我的应用程序中使用一个普通的React组件库和MobX作为状态管理。当我有一个可以观察到的数组作为数据,并且我想把它从我的组件(这是一个mobx-react observer)传递给UI库的组件(这个支柱是PropTypes.array的类型)时,组件拒绝它,说我的可观察数组是一个对象,而不是一个数组。
// my store
class Store {
@observable data = [...];
}
// my component
@inject('store')
@observer
class MyComponent extends React.C
我为我正在开发的“薪酬”字段编写了一个React原型,现在我正试图将状态提升到一个域存储。现在,我只是在尝试测试控制台中的反应,但是由于某种原因,当使用一个动作来改变存储区的一个可观察数组的字段时,反应是不起作用的。
码
我有以下几点:
数据对象
class PayRate {
/**
* @param {number} taskId The id of the task. (-1 for all)
* @param {Date} effectiveDate The date the payrate goes in effect.
* @param {number} ra
我正在使用一个MobX存储来保存一些用户身份验证数据作为一个观察值。我想要访问一些函数的一些数据,我想要在带有组件的注入/观察者模式之外运行。这样做明智吗?
例如,身份验证函数如下:
function authMe() { ...access mobx data here to perform conditional logic}
我正在使用flutter Mobx进行状态管理。我有一个简单的类: class A {
int x;
A(this.x);
} 我如何观察x是否在另一个Mobx存储中的类中发生了变化: class MyStore extends _MyStore with _$MyStore {
Subs(A a) : super(a);
}
abstract class _MyStore with Store {
@observable
A a;
_Subs(this.a)
} 我想让MyStore观察a.x。 有没有可能,如果是的话,是怎么做的?
我有一个可以观察到的物体。并在react observered组件中使用它。当mobx在这个对象中获取任何属性时,我可以有一些回调吗?示例:
@observable obj; // in some class that will be a store
@observer
class Test extends React.Component<Props, {}> {
render() {
<div>{this.props.obj.user.name}</div>
}
}
我想在mobx从obj获取任何属性时添加回调,例如:
obj.on(
我一直试图得到一个看似简单的例子,但一直未能使用MobX、React、TypeScript和actions。没有严格,一切正常,但我宁愿使用严格的模式。
我得到的错误是:
Uncaught Error: [mobx] Since strict-mode is enabled, changing observed observable values outside actions is not allowed. Please wrap the code in an `action` if this change is intended. Tried to modify: AppState@1.t
我对mobx是个新手,并且一直在用我的方式阅读文档。在阅读了有关observable和autorun的内容后,我创建了一个小型试验床来在本地使用该功能。
当使用mobx 5.15.4在nodejs 13.12中执行以下代码时,autorun函数仅被调用一次。它不会对最后一行做出反应,因为最后一行的数字会被更新。
const mobx = require('mobx')
const {observable, autorun} = mobx;
// just to make sure it is imported
console.log(observable);
var nu
在中,商店的创建方式有很多变化。例如,在页面上:
在第一个代码示例中,使用useLocalStore实例化存储:
const store = useLocalStore(createStore)
在第二个代码示例中,存储由直接"newing“商店启动:
counterStore: new CounterStore(),
themeStore: new ThemeStore(),
根据推论,第一个是“本地”存储(因此需要useLocalStore),第二个是“全局”存储,因此不是。然而,不清楚这是为什么,以及随后的行为差异是。
为什么在第二个例子中不需要useLocalSto
我试图触发一个Mobx操作,它正在生成错误"Uncaught : and read属性'arrowVisible‘of undefined“。不知道为什么(功能是由反应点触发的):
(这里是复制)
import React from "react";
import PropTypes from "prop-types";
import { Container, Row, Col } from "reactstrap";
import { observer, inject } from "mobx-react";
i
我有一个这样的课程: class Field{
constructor(name) {
this.name= name
this.otherAttr = null
}
changeName(newName) {
this.name = newName
}
}
const f = new Field("Charanjit")
f.setName("Singh") // It shoukd reflect in observer
f.name = "Rahul" // It should also
我用react在javascript中创建了一个ToDo列表,因为我是react的初学者,所以我用'this.state‘来改变我的应用程序在多个组件中的状态,我的问题是在一个工作面试中,我被赋予了一个任务,用mobx来运行它的状态来创建todo列表,但是经过长时间的研究,我仍然有很多问题要转换我的反应性项目的’them .state.todo‘,这里是代码中的主要应用组件,我喜欢演示如何将状态转换为mobx观察者/可观察的,如果需要更多的组件,我会喜欢添加它们。
import React from 'react';
import _ from 'lodash&
我从不同的来源了解到mobx优于react渲染器,并且比redux更快。然而,如果我做了几个测试,就会发现向mobx可观测数据添加新数据的速度相当慢。在react原生环境中,每一毫秒都很重要,使用解决方案是很棘手的,因为我真的很喜欢mobx,即使循环超过200个元素和填充数组也需要超过100ms。我希望有人能看一看测试代码,并给我一些提示-我做错了什么,以及如何提高性能。
import {observable, transaction,autorun} from 'mobx';
class Runner {
list = observable([]);
run() {