问题标签 [mobx-state-tree]
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.
javascript - MobX 与 MobX 状态树
为什么我应该在原版 MobX 上使用 MobX 状态树?似乎每次我读到 MobX 时,都会在同一个地方提到 MST。真的有人单独使用MobX吗?
可能问题太笼统了...
javascript - 从数组中返回“假”布尔值的数量 - MobX 和 React
我有一个模拟数据文件,其内容排列如下:
我的目标是能够计算“假”值的数量,并将该计数返回给要用作内容的组件。
我有一个定义 ModelStore 的文件。开头是这样的:
您可以看到模拟数据作为数组导入。
然后我想出了以下内容:
但我不确定如何从这里开始实际计算“假”值的数量。
然后我有这个需要插入该计数值的组件:
其中 "viewed items: 2" 位于,用 "2" 代替计数值。
任何有关如何处理这种情况的指导将不胜感激。
javascript - 如何取消订阅 mobx-state-tree 中的 onSnaphot()?
我正在使用 mobx-state-tree 的onSnapshot()
功能来监听状态变化,然后在本地存储中的每一次变化中保持状态。我就是这样做的:
我的问题是,当我的应用程序需要停止保留每个快照时,如何取消订阅 onSnapshot()?
reactjs - 一个节点不能在状态树中存在两次( mobx-state-tree )
通过操作在以下模型中Error: [mobx-state-tree] A node cannot exists twice in the state tree. Failed to add SearchModel@/results/0 to path '/selectedItem'
分配值时,我收到一条错误消息。我检查了文档,但不确定是什么导致了这个问题。selectedItem
setSelectedItem
感谢任何帮助。谢谢!
react-native - React-Native MobX-State-Tree 存储在 registerComponent 上不可用
鉴于以下设置:
ApplicationStore 未定义,因此无法创建...
Cannot read property 'create' of undefined
Module AppRegistry is not a registered callable module (calling runApplication)
有没有更好的方法来设置 ApplicationStore,并通过注入使其可用于组件?
这就是我在反应应用程序()中所做的事情,尽管是通过ReactDOM.render()
......
一如既往,所有方向都受到赞赏,所以提前感谢!
reactjs - Mobx-state-tree、Mobx-react 和 RenderProps 的组合不更新 React 组件
这是一个复杂的问题。希望我设法解释,以便每个人都能理解错误
1) 父组件。
2)子组件
它使用react-beautiful-dnd
允许在文章布局上拖放。这个库使用 RenderProps(provided: any, snapshot)
文章是一个 mobx-state-tree 模型。这是模型的 actions 属性的 init 方法:
流程如下: 1) 创建文章 2) 初始化文章 3) 我希望在我得到响应并在文章上应用快照后看到文章更新
但是运行 applySnapshot 后子组件不会重新渲染。我检查并运行了 applySnapshot,并且文章具有从后端收到的更新值。
我认为问题是因为我在子组件中使用了 RenderProps,这会以某种方式干扰并限制组件重新渲染。
棘手的一点是,如果我添加
在render
函数的任何地方的子组件中,这将解决问题并更新初始组件。因此,只需重新渲染道具,子组件就会重新渲染自身,并通过重新渲染 Drappable 和 RenderProps 隐式修复我的初始错误。
可能的解决方案 1:如果我使用不使用 RenderProps 的不同反应 DND 库,则所有内容都会按应有的方式更新。但我不想这样做,因为react-beautiful-dnd
它有很好的动画,我需要重构一些代码。
我无法理解为什么不重新渲染 Child 组件。
子组件是否不知道它依赖于文章,因为我只使用this.props.article
了 renderProps 内部?
我可以避免使用 renderProps 吗?
typescript - Mobx-State-Tree - 分配给数组类型
我有这个基本模型。
我收到以下 TS Lint 错误:
类型 'string[]' 不可分配给类型 'IMSTArray<ISimpleType> & IStateTreeNode<IArrayType<ISimpleType>>'。类型 'string[]' 缺少来自类型 'IMSTArray<ISimpleType>' 的以下属性:spliceWithArray、observe、intercept、clear 和 4 more.ts(2322)
这是一个恼人的错误。我可以通过这样分配来修复它:(self as any).stores = stores
但我想停止对我的代码进行黑客攻击。
问题是为什么我会收到这个错误?是否有另一种方法可以分配给 mobx-state-tree 中的数组类型?
我在 mobx-state-tree 中找不到更详细的使用数组的文档。有人知道吗?
javascript - 在 Mobx 状态树中进行更改后,如何让模型/状态进行监听?
我有两个模型/商店,每个都引用一个对象。Store2 在 Store1 被填充并接收到 childId 后被填充。当 Store1 被填充时,我将如何让 Store2 收听?
商店1
Store2(在 Store1 从 API 调用获取 childId 之前无法填充)
react-native - mobx-state-tree 不使用 react-native 更新模型
我尝试User
使用 react-native、mobx、mobx-state-tree 创建模型
我的User
模型:
以及调用该updateNickName
动作的班级:
userModel.updateNickName
但是用户在被调用后似乎没有更新。
为什么nick_name
字段没有更新?
javascript - 多个异步调用?
我正在使用异步/等待。我想知道如何并行执行多个异步调用?
我做吗
至少从调试器看来,它一次调用一个。
我不确定是否因为我正在使用 mobx 状态树“流”功能,这是否可能会阻止call2
发生直到call1
完成。