mobx 相关问题

JavaScript中的功能反应式编程库。

我需要如何编写周期性计时器来使用 Mobx 测试与服务器的连接?

我想用Mobx编写ReactionBuilder,它将定期检查与我的服务器的连接,如果没有连接则发出新的请求来连接它。我怎样才能正确地做到这一点? 我哈...

回答 1 投票 0

React/Mobx 无法覆盖 Props 设置的默认值

这可能是“基本(缺乏)理解”问题之一。我正在进入 React,并致力于我的第一个主要应用程序,并且遇到了一个问题。 本质上是...

回答 1 投票 0

使用mobX全功能组件

我刚刚学习了react和react-native 3个月了,我对函数式组件非常熟悉,从一切开始,因为从第一步开始,我已经在函数中写了一个“hello world”...

回答 1 投票 0

MobX React - 更新对象数组的单个索引会重新渲染所有子对象

我有一个 mobx 对象存储,这些对象显示在列表视图中,并在存储值上有一个地图,如下所示: {ObjectStore.objects.map((obj, 索引) => 我有一个 mobx 对象存储,这些对象显示在列表视图中,并在存储值上有一个地图,如下所示: {ObjectStore.objects.map((obj, index) => <ObjectItem key={obj.id} obj={obj} objIndex={index} ...unrelated UI Pros /> )} 在 ObjectItem 中有一个 onClick 处理程序,它向该特定对象添加一些新内容: const handleClick = () => { ObjectStore.updateObjectbyIdx(objIndex, newData) } 在商店 updateObjectbyIdx (index, data) { this.objects[index] = { ...this.objects[index], ...data} } 两个 React 组件都包装在观察者中。当句柄单击运行时,它会导致父容器重新呈现,然后所有 ObjectItem 组件重新呈现,即使附加数据仅通过索引添加到单个项目。 最初我完全避免使用索引并使用地图更新它,如下所示: updateObjectbyId (id, data) { this.objects = this.objects.map(obj => obj.id === id ? { ...obj, ...data} : obj }) } 但我假设由于这是创建一个新的数组引用,因此父容器观察ObjectStore.objects重新渲染。 切换到索引让我期望父级不会重新渲染,因为主数组引用仍然存在,并且由于我在最新点解构了值,因此只有单个 ObjectItem 会重新渲染。 我最终确实让它发挥作用: updateObjectbyIdx (index, data) { Object.keys(data).forEach(dataKey => { this.objects[index][dataKey] = data.dataKey } } 但是,当我只想更新数组中单个对象中的数据时,这似乎是一个奇怪的解决方法。 这样做: updateObjectbyIdx (index, data) { this.objects[index] = { ...this.objects[index], ...data} } 您还更新了对该对象的引用,并且由于父组件使用该对象,它将重新渲染。 您可以这样做 Object.assign:,而不是最后一个解决方案(实际上,这是正确且很好的) updateObjectbyIdx (index, data) { Object.assign(this.objects[index], data) } 这将保留引用并仅更新属性。只需记住深层嵌套的属性、对象、数组即可。要处理它们,您最好使用某种 mergeDeep 函数,Object.assign 不会进行合并,它基本上会覆盖您在自定义循环中所做的所有内容。

回答 1 投票 0

MobX 或 SWR 突变中状态更新的部分组件渲染

问题:当更新 MobX 中的状态或调用 SWR 中的突变时,所有组件都将被重新渲染,尽管我只想更新一个元素。 示例代码: 在 React 沙箱中,渲染

回答 1 投票 0

我使用 mobx 的代码不会更新状态

我有一个简单的代码,我是 mobx 的新手,它在上下文中更容易,但我必须使用 mobx : 从“mobx”导入{makeAutoObservable}; 从“../Books/Books.repository...

回答 1 投票 0

Mobx - runInAction() 用法。为什么我们需要它?

为什么我们需要 runInAction 方法以及它到底是如何工作的? 有人可以向我解释 runInAction 功能吗?

回答 1 投票 0

ObservableStream<List<Type>> 转换为 List 和/或 ObservableList<Type> Flutter Mobx

我已经从 Drift: Stream 设置了一个 sqlite 流到我的 @oberservable 类中。我可以将其设为 OberserableStream,但我不明白如何从流中获取列表。 我的问题是...

回答 1 投票 0

ObservableStream<List<Type>> 转换为 List 和/或 ObservableList<Type>

我已经从 Drift: Stream 设置了一个 sqlite 流到我的 @oberservable 类中。我可以将其设为 OberserableStream,但我不明白如何从流中获取列表。 我的问题是...

回答 1 投票 0

如何修复 Flutter 中的“This expression has a type of 'void'...”错误?

我正在使用 MobX 在 Flutter 中构建番茄钟应用程序,并遇到错误“此表达式的类型为 'void',因此无法使用其值。”这是相关代码和错误屏幕...

回答 2 投票 0

使用 useEffect() 的 Mobx 未在组件中渲染数据

我是 React 和 Mobx 的新手。 我想通过 useEffect() 中 GET 请求的数据来初始化组件。 mobx 存储有简单的组件: 从“mobx”导入{autorun}; 导入反应,{

回答 1 投票 0

类型 { } 上不存在属性“store” - MobX & React & TypeScript

我不断收到错误“类型‘{}’上不存在属性‘store’。”将 Next.js 与 Mobx 结合使用时来自 TypeScript。我正在使用 Next.js v14.1.0 和应用程序路由器设置。 如何正确...

回答 1 投票 0

类型 { } 上不存在属性“store” - NextJS TypeScriptwith MobX

我不断收到错误“类型‘{}’上不存在属性‘store’。”将 NextJS 与 Mobx 结合使用时来自打字稿。我正在使用 NextJS v14.1.0 和应用程序路由器设置。 如何正确定义...

回答 1 投票 0

如何使用 Mobx / Firebase 更新 Material-UI 表

我需要使用从 Firebase 获取的 MobX 存储更新 Material-UI 表。到目前为止,该表使用 Firebase 数据更新了“符号”列,但其他列是通用的。 让id=0;

回答 2 投票 0

为什么要在 Mobx Flutter 中使用 Provider?

Flutter 官方 Mobx 文档说,为了正确传输数据,必须使用 Provider 并引用上下文来检索数据。 但为什么我不能直接调用 Mobx ...

回答 3 投票 0

如何使 mobx 存储在单个 spa 应用程序根配置中以在所有微应用程序之间共享数据和状态?

我是微前端的新手。我目前正在使用 single-spa 框架。我已经学习了微前端应用程序的创建和集成,但我在共享数据、UI 通用组件方面面临问题...

回答 1 投票 0

Antd Dragger 从剪贴板粘贴图像

我使用Antd+Mobx,我想修改Dragger,以便它从剪贴板接收文件。主面板有图像粘贴处理程序,可将新文件添加到存储中的文件列表中。 最后拖拽文件和文件

回答 1 投票 0

强制组件使用 ag-grid 进行渲染

大家好,我正在使用 ag-grid 创建一个表格,并在我自定义的单元格编辑器中做出反应,基本上我只需要在选择一个选项后在表格上设置值,但由于某种原因,该值...

回答 1 投票 0

MobX 和 React 中 fetch 请求的问题

我试图从服务器下载数据并将其输出到控制台进行验证,但由于某种原因输出了 undefined 莫布X: 从“mobx”导入 { makeAutoObservable } D 级...

回答 1 投票 0

如何在 Mobx 中迭代数组而不触发“在不读取任何可观察值的情况下创建/更新派生‘观察者’”。警告

我正在使用: "mobx": "^6.6.2", "mobx-react-lite": "^3.4.0", 想要对我的 .tsx 中的商店数组执行一个简单的 .map (.items 的类型为 MenuStore[]) {

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.