jjzjj

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 - JavaScript 中的 @ 是做什么用的?

我正在通读MobXdocs我对以下代码感到困惑:classTodo{id=Math.random();@observabletitle="";@observablefinished=false;}@observerclassTodoListViewextendsComponent{render(){return{this.props.todoList.todos.map(todo=>)}Tasksleft:{this.props.todoList.unfinishedTodoCount}}}@符号的意义是什么? 最佳答案 它被称为装

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

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

javascript - Prop 更新时,React Native 组件不透明度不会更新

我有一个ReactNative子组件,如果disabled属性设置为true,它会呈现一个半透明状态的按钮。该prop可能会在应用程序初始加载后更新(一旦它获得了数据),因此不会是组件的初始状态。我可以看到,一旦我与按钮交互,它就会改变其状态,但出于某种原因之前不会。我可以从日志和onPress行为中看到,Prop正在更新。我尝试了不同的方法,但似乎都无法解决问题。classTestButtonextendsReact.Component{constructor(props){super(props);}render(){constbuttonOpacity=(this.props.d

javascript - 在 React 应用程序中点击返回按钮不会重新加载页面

我有一个用TypeScript编写的React应用程序(16.8.6),它使用ReactRouter(5.0.1)和MobX(5.9.4)。导航工作正常,数据应该加载,但是,当我单击浏览器的“后退”按钮时,URL发生变化但没有更新状态并且页面没有重新呈现。我已经阅读了无数关于这个问题和withRouter修复的文章,我试过了,但没有什么不同。一个典型的用例是导航到摘要页面,选择导致新数据加载和新历史状态被推送的各种事物,然后返回几个步骤到您开始的地方。大多数历史推送发生在处理多个路由的摘要组件中。我注意到,当从摘要页面返回到主页时,重新呈现会按预期进行。我的索引.tsximport{P

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