jjzjj

mobx-miniprogram

全部标签

javascript - MobX - 如何在商店之间进行沟通?

在我的应用程序中,我有两个MobX存储-store_A用于处理用户信息(当前登录的用户等),store_B用于处理所有用户的事件。用户登录后,我想显示有关该用户的所有事件。我如何从store_B中访问记录的用户信息(来自store_A),以便我可以正确过滤事件?此时我必须将loggeduserName数据存储在我的store_b中以检索该数据...来self的事件商店的代码:classObservableEventsStore{...//afterlogIn,saveuserName:@actionsetUser(userName){this.givenUser=userName}..

javascript - Mobx 返回 ObservableObjectAdministration 而不是我的对象

我是mobx的新手。我想知道为什么当我调用计算的getServerUrls()函数而不是对象时得到ObservableObjectAdministration。下面是我的店铺。import{observable,computed}from'mobx';import{ServerNames}from'master-server-urls';classServerNamesStores{@observableServerNameUrls={};@computedgetgetServerUrls(){console.log('@computedgetgetServerUrls()',this

javascript - 取消 componentWillUnmount 上的 mobx 自动运行功能

我的componentDidMount中有以下自动运行功能:componentDidMount(){this.autoUpdate=autorun(()=>{this.setState({rows:generateRows(this.props.data)})})}问题是另一个组件在组件未安装时更改了this.props.data-因此我在未安装的组件上收到.setState警告。所以我想在组件卸载后删除自动运行。我试过:componentWillUnmount(){this.autoUpdate=null}但自动运行功能仍然触发。一旦不再安装组件,有没有办法取消mobx自动运行?

javascript - mobx 的 `action.bound` 和箭头函数在类函数上的区别?

在带有babel的类上使用箭头函数对其进行转换,因此定义绑定(bind)在构造函数中。因此它不在原型(prototype)中,并且在继承时无法通过super获得。通过创建许多实例进行扩展时,它的效率也不高。关于这个主题的博客文章很多,但我只是想知道在使用babel时与箭头函数相比,mobx.action.bound的处理方式有何不同。两者比较:classExample{test=()=>{console.log(this.message)}}classExample{@action.boundtest(){console.log(this.message)}}

javascript - React/Mobx - 组件正在重新渲染,但未调用 componentWillReceiveProps()

我有React/Mobx应用程序。当我在商店中进行更改时,组件正在更新(重新渲染),但我需要进行一些比较以添加更多功能,因此我想使用componentWillReceiveProps(nextProps)并将nextProps与this.props进行比较。不知何故,它没有被调用。任何想法,我做错了什么,或者我还能做些什么来获得它? 最佳答案 tl;dr:使用componentWillUpdate和componentDidUpdate作为prop传递的对象Store永远不会改变,即使它的内容发生变化。使用@observable的技巧

javascript - 如何跟踪 MobX 存储中的嵌套对象

让我们留下来,我通过API调用加载了这个myObject:myObject={fieldA:{details:'OK',message:'HELLO'},fieldB:{details:'NOT_OK',message:'ERROR'},}只有每个字段的详细信息和消息可以更改。我希望这个对象在MobX存储中是可观察的(哪些属性?将在下面定义)。我有一个简单的React组件,它从商店中读取两个字段:@observerclassAppextendsComponent{store=newStore();componentWillMount(){this.store.load();}rende

javascript - MobX - 替换可观察数组中的项目?

如果我错了,请纠正我,但目前使用replace是不可能的,因为replace会替换整个observable数组,应该使用map代替吗?我有一个这样的可观察数组:@observablequestionsList=[];在服务器调用时,它会填充2个对象,每个对象都有一个不同的id字段,所以它看起来像这样:@observablequestionsList=[{id:1,question:"Istheearthflats?",answer:"Somelonganswerhere..."{id:2,question:"Doesthemoonhavelife?"}answer:"Somelonga

javascript - 如何在 Redux 中使用类模型(使用 Mobx 选项)

编辑:我最终选择了Mobx.js,有关详细信息,请参阅@mweststrate答案。所有关于redux的学习资源都展示了如何将它与普通对象模型一起使用。但是当你使用一些es6类模型时,我无法弄清楚如何使用它。例如,让我们采用这种状态形状:{players:{000:{life:56,lvl:4,//...},023:{life:5,lvl:49,//...},033:{life:679,lvl:38,//...},067:{life:560,lvl:22,//...},//...}还有这个类(未测试)classPlayer{id;//intlife;//intlvl;//intbuff

javascript - Mobx:Observable 数组显示不正确

我想了解如何在Mobx中使用可观察数组。我很难弄清楚这是为什么:letentities=observable([]);entities[0]="foo";autorun(()=>{console.log(entities);});写道:[$mobx:Object]0:(...)1:(...)2:(...)3:(...)4:(...)5:(...)6:(...)7:(...)8:(...)9:(...)10:(...)11:(...)12:(...)13:(...)14:(...)15:(...)16:(...)17:(...)...999:(...)而不是经典数组?

javascript - Mobx 性能

我从不同的来源了解到,mobx优于react渲染器,并且比redux更快。然而,如果我做了几个测试,它表明向mobx可观察对象添加新数据非常慢。在nativereact环境中,每一毫秒都很重要,使用解决方案很棘手,即使循环超过200个元素并填充数组也需要超过100毫秒因为我真的很喜欢mobx,所以我希望有人可以看一下测试代码并给我一些提示-我做错了什么以及如何提高性能。import{observable,transaction,autorun}from'mobx';classRunner{list=observable([]);run(){conststart=newDate().ge