1

我刚刚拿起 om.next 并遇到了一种情况,我将一些表单输入实现为保持本地状态的组件,例如验证状态、实际输入值等——该状态已更新和访问通过om.next/update-state!om.next/get-state。这个问题似乎是当我将输入包装在父组件中的表单中时,我不确定如何获取输入组件所持有的状态。将父组件作为输入组件的属性传递会更好吗?没有父组件的情况呢?

4

1 回答 1

2

在我看来,您想要实现的用例有 2 个选项:

  1. 如您所说,将父组件作为参数传递
  2. 在全局应用程序状态中有一个条目,表示正在编辑的当前表单,无论transact!与输入对应的组件如何,您都可以对其进行更新。这样,每个表示输入的组件都知道在应用程序状态中的哪个位置进行自我更新(当前表单中的哪个键)——可能在一个突变函数中简洁地捕获。

1) 考虑到您目前拥有的代码,可能是最容易实现的,但我总是喜欢选择 2),因为它不会偏离 Om Next 推荐(并试图强制执行)的“单一事实来源”观点。表单数据实际上是业务数据,可能不希望分散在组件中。可测试性只是我从这种方法中立即看到的优势之一。

于 2016-05-30T21:56:59.133 回答