问题标签 [reswift]

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.

0 投票
1 回答
517 浏览

ios - 如何在 ReSwift 中使用多个子选择定义`newState`?

我们已经在一些 iOS 项目中使用过ReSwift,并且一直很喜欢它。在4.0中,他们添加了子选择部分状态的功能,并且skipRepeats可以手动或使用 Equatable 的存储。选择商店很简单:

然后你定义newState

newState当通过元组传递多个参数时,我对如何定义有点困惑:

我正在传递元组,但看到Type 'MainViewController' does not conform to protocol 'StoreSubscriber'andType of expression is ambiguous without more context错误:

我在这里做错了什么?

0 投票
1 回答
1032 浏览

ios - ReSwift - 如何处理依赖于旧状态和视图中新状态的状态变化

我正在尝试在我的 ios 项目中使用 ReSwift,并且对如何处理我的视图中的更改有疑问。我发现我需要知道旧状态是什么,然后才能应用新状态提出的更改。在我的反应项目中使用 redux 时,我从来不需要知道我的旧状态是什么。

我的特殊用例是,我正在构建一个带有 Overlay 屏幕的 CameraView。从应用程序中的任何位置说一个 ViewController 我可以创建一个 CameraView 并触发它通过触发一个动作从其中打开一个 UIImagePickerController。这是一些代码:

以上就是打开和关闭相机的所有代码。当我们添加更多操作(例如禁用或启用闪光灯)时,我的困惑开始了。在我看来,我需要处理额外的状态转换。

我的行动现在发展到:

我的状态现在看起来像这样:

我的观点是复杂性开始的地方。如果用户启用了 flash 并且我正在响应 FlashToggleAction 状态更改,我如何在我的视图中处理状态更改?

我现在如何应对变化?我能想到的唯一方法是存储对旧状态的引用并自己比较差异。

0 投票
1 回答
526 浏览

redux - 带参数的 Redux 操作与多个操作

API 请求周期操作的推荐方式是什么?

即:我通常有3个步骤

  • 请求开始(等待响应)
  • 请求成功完成(并返回一个值)
  • 请求失败(或返回错误)

我可以将这些步骤建模为 3 个动作

  • RequestDidStartAction
  • RequestDidFinishWithSuccessAction(在这里我将值作为动作的属性)
  • RequestDidFinishWithFailureAction(在这里我将错误作为操作的属性)

或者我可以将其建模为一个具有枚举的操作:

两种方式哪个更好?还是有更好的选择?

Ps.:我正在使用 ReSwift,但我认为这个问题适用于任何 Redux 实现。

0 投票
1 回答
679 浏览

swift - ReSwift 中间件加载初始状态

如何使用 ReSwift 从数据库加载初始应用程序状态?

我正在考虑类似于第一次初始化应用程序状态时的中间件,即第一次调用减速器时。

0 投票
1 回答
203 浏览

swift - 带有回调的 ReSwift ActionCreator / 在调度后返回 observable

我正在使用ReSwiftRxSwift(如果没有这些信息,这个问题就没有多大意义)。

有没有一种标准的方式在 ReSwift 中调度动作创建者并在它完成处理后发生某些事情(即,完成处理动作和动作创建者内部可能发生的所有内部请求)?

我确实知道实现这一目标的一种方法:

但这有两个问题:

  1. 我宁愿使用标准方式
  2. 我也需要这个回调作为一个Observable对象。

为了解释第二个原因,我需要类似的东西:

let observable = store.dispatch(myActionCreator)

所以我可以随意使用observable变量。

当然,我可以自己实现所有这些日志记录,并拥有类似 astore.dispatchReturningObservable作为 的扩展Store,但我正在寻找一种更简单的方法。

有吗?

0 投票
1 回答
459 浏览

swift - Swift 类型转换/模式匹配条件 this 或 that

我的用例涉及一个 switch 语句并尝试构建一个依赖于多个类型转换的案例。这真的会帮助我介绍一些可组合/干净/更少的代码。通用多重条件在我使用let强制转换时不起作用,并且它不能被突变。此外,fallthrough 也会产生类似的错误。

错误:模式变量绑定到类型

'fallthrough' 无法将控制权转移到声明变量的 case 标签

这些错误都是有道理的。基本上,我问是否有任何方法可以进行类型转换/模式匹配let foo as SomeStruct || SomeOtherStruct

编辑:有关更多上下文,我正在使用 ReSwift 进行减速器组合

0 投票
1 回答
86 浏览

reswift - ReSwift 状态的行为是一种反模式吗?

我开始尝试以这种方式构建应用程序的概念,我发现自己很想在状态中拥有域规则函数,以便我可以重用它们。即使我找不到任何关于它的文档,它看起来确实很奇怪,因为各州觉得它们应该只拥有属性。例如,假设我有一个板状态,它公开了一个由几个动作创建者使用的方法,以确定将哪个动作分派到商店。可以把它放在国家本身吗?或者我应该为这个动作创建者创建一个公共类并将这个逻辑放在那里?如果两者都不行,那么推荐放置此逻辑的位置在哪里?

0 投票
0 回答
86 浏览

ios - 具有引用类型属性的 ReSwift 和 State

由于 ReSwift 基于 State 的不变性,因此 Swift 结构是显而易见的选择。

但是,如果我真的需要 State 中的引用类型属性来拥有项目层次结构怎么办?假设我的模型由树组成,因此 TreeNode 必须具有引用类型来存储对其父 TreeNode 的弱引用。在这种情况下,使用 ReSwift 的最佳方法是什么?

如果状态改变,我应该使 TreeNode 对象不可变并分配一个新对象吗?或者,最好将 TreeNode 抽象组合为 TreeNode 结构数组的数组(但在这种情况下,我将不断搜索该数组数组以找到父对象)。

关于 ReSwift 的信息并不多,而且社区还不够大。所以,也许我可以在这里讨论一下?谢谢!

0 投票
1 回答
620 浏览

ios - 声明“订阅”不能覆盖多个超类声明 (ReSwift)

从 ReSwift Pod 覆盖函数时遇到问题。我有以下模拟课程:

当覆盖订阅方法时,我收到以下错误

在此处输入图像描述

然后,当使用自动完成时,它还显示 2 次出现: 在此处输入图像描述

但是,在寻找原始功能时,只有一个看起来像这样

这是我的编译器输出 在此处输入图像描述

我没有想法,所以非常感谢任何帮助谢谢!

0 投票
2 回答
114 浏览

redux - Promise 作为 redux 中状态的一部分

我有一种情况,将 Promise 对象作为状态的一部分非常方便。简而言之 - 有一个状态包含用户在问答模式中提供的所有信息,并且在一些答案之后发送呼叫会很好,在几个问题之后将需要其结果:

在 Q7 之前,我需要检查 Q3 之后的通话结果。将 Promise 作为状态的一部分,然后订阅结果真的很容易。但我有一种内在的感觉,它不应该发生。这样做可以吗?

我认为我的代码不会有助于理解,所以如果不清楚,请随时提出问题。