javascript - 使用 React Native 和 Redux 的动画状态管理

标签 javascript architecture react-native redux react-animated

背景
我一直在使用 React Native 和 Redux 构建一个应用程序,以评估是否将其用于即将推出的 Swift 项目并完全原生化。
我真的相信 Dan Abramov 使用 Redux 的技术是一个坚实的工程案例。不更新状态并将 View 作为状态的函数很棒,我非常赞同这个想法。我有点不适应的地方是将动画加入其中。
设想
更复杂的动画需要状态管理,例如,淡出 View ,替换文本并将其淡入。我只想在动画中途更新文本,这很容易使用本地状态并利用动画框架。
假设要显示的文本是由状态驱动的,它会在状态通过适当的 Action 和 reducer 组合更改的那一刻被更新,但为了演示,我需要在这两个动画之间使用它。
这方面的一个例子是从列表中选择一条记录,其中有一个显示所选记录名称的屏幕标签。理想情况下,您希望立即更新全局存储,但对标签本身执行良好的过渡。
我的想法
在我看来,使用组件内部的“本地状态”来处理动画是有一定意义的,而使用 Redux 的主存储来处理更多的整体数据或架构状态。问题是这打破了 View 是全局状态函数的想法,我不确定这是否适合我。
另一方面,通过编写大量 Action 、reducer 和使商店困惑来管理动画序列等也让人感觉不干净。
问题
我知道 React Native 还处于起步阶段,并不是每个人都在使用 Redux,但是在这种情况下是否有一种普遍接受的方式来管理动画?

最佳答案

我开发 React 才 9 个月左右,所以与你 Matt 这样的人相比,我可能是一个 n00b,我可以毫不犹豫地说 redux 很棒,但它不应该取代内部组件状态所有情况。特别是对于动画之类的东西。您自己问过这个问题,但我再次问:为什么需要处于全局状态? Redux 允许跨应用程序的组件在整个应用程序发生事情时获取更新的状态。然而,这并不意味着除了 Redux 存储之外,应用程序中的任何地方都不应该有任何状态。

一个比我聪明得多的人说

If you feel pressured to do things “the Redux way”, it may be a sign that you or your teammates are taking it too seriously. It’s just one of the tools in your toolbox, an experiment gone wild. Local state is fine....

The tradeoff that Redux offers is to add indirection to decouple “what happened” from “how things change”. Is it always a good thing to do? No. It’s a tradeoff.



我在引用什么?什么样的亵渎神明的 React 开发者可能会说 Redux 不应该用于 React 的所有事情?

我会告诉你是谁。 Redux 创建者 .

https://medium.com/@dan_abramov/you-might-not-need-redux-be46360cf367#.flb8fzjr8

TLDR 在有用的地方使用 Redux 有道理 .对于它应该做的事情来说,这真是太棒了。
但不要试图将那个圆钉插入方孔。

我希望这很有用。

关于javascript - 使用 React Native 和 Redux 的动画状态管理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40378436/

相关文章:

javascript - 如何在每次旋转后显示旋转结果

architecture - 没有硬编码的微服务发现的最佳实践?

architecture - 在决定是复制还是分发以支持可扩展性时应考虑什么?

javascript - 使用 React-Native-Router-Flux 从导航栏按钮传递 Prop

react-native - 我可以用react-native-webview渲染空HTML页面吗?

react-native - 如何将 useState 更新为 TextInput

javascript - Chrome 自动填充无法部分工作

javascript - Handlebars 将字符串数组转换为变量数组

javascript - 与 postman 一起进行 AuthO 测试

.net - 互联网上基于客户端/服务器消息的架构