Javascript 使用React Native和Redux对动画进行状态管理 背景

Javascript 使用React Native和Redux对动画进行状态管理 背景,javascript,architecture,react-native,redux,react-animated,Javascript,Architecture,React Native,Redux,React Animated,我一直在使用React Native&Redux构建一个应用程序,以评估是否在即将到来的项目中使用它,而不是使用Swift和完全本机 我真的相信丹·阿布拉莫夫的Redux技术是固体工程的一个例子。不更新状态并将视图作为状态的一个函数是很好的,我非常赞同这个想法。我要说的是在混音中加入动画 脚本 更复杂的动画需要状态管理,例如,淡出视图、替换文本并淡入。我只想在动画进行到一半时更新文本,使用本地状态并利用动画框架很容易做到这一点 假设要显示的文本是由状态驱动的,它会在状态通过适当的action&r

我一直在使用React Native&Redux构建一个应用程序,以评估是否在即将到来的项目中使用它,而不是使用Swift和完全本机

我真的相信丹·阿布拉莫夫的Redux技术是固体工程的一个例子。不更新状态并将视图作为状态的一个函数是很好的,我非常赞同这个想法。我要说的是在混音中加入动画

脚本 更复杂的动画需要状态管理,例如,淡出视图、替换文本并淡入。我只想在动画进行到一半时更新文本,使用本地状态并利用动画框架很容易做到这一点

假设要显示的文本是由状态驱动的,它会在状态通过适当的action&reducer组合更改时更新,但为了演示起见,我需要在这两个动画之间使用它

这方面的一个例子是从列表中选择一条记录,其中有一个屏幕标签显示所选记录的名称。理想情况下,您可能希望立即更新全局存储,但要在标签本身上执行良好的转换

我的想法 在我看来,在组件内部使用“本地状态”来处理动画是有一定意义的,而主Redux存储用于更全面的数据或架构状态。问题是这打破了视图是全局状态函数的想法,我不确定这是否正确

另一方面,通过编写成堆的动作、简化程序和混乱的商店来管理动画序列也让人感觉不干净

问题
我知道React Native还处于起步阶段,并不是每个人都在使用Redux,但在这种场景中有没有一种普遍接受的管理动画的方法?

我开发React才9个月,所以与你Matt这样的人相比,我可能是n00b,我可以毫不犹豫地说Redux非常棒,但它不应该在所有情况下都替换内部组件状态。特别是像动画这样的东西。你自己也问过这个问题,但我再次问:为什么这需要一个全球性的状态?Redux允许应用程序中的组件在整个应用程序中发生事件时获得更新状态。但是,这并不意味着应用程序中的任何位置都不应该有任何状态,除非在Redux存储中

一个比我聪明得多的人说

如果你觉得有压力去“重做”,这可能表明你或你的队友太认真了。这只是你工具箱里的一个工具,一个疯狂的实验。 当地的情况很好

Redux提供的折衷方案是添加间接方式来解耦“什么 从“事物如何变化”开始。这总是一件好事吗? 不,这是一种折衷

我引用的是什么?什么样的亵渎React开发者可能会说Redux不应该用于React的所有东西

我会告诉你是谁Redux的创建者

TLDR在有用和有意义的地方使用Redux。这是可怕的什么它应该做的。 但是不要试着把那个圆钉子装进一个方孔里


我希望这是有用的

我对这个很感兴趣,一直在考虑同样的情况。我问自己类似的问题。我不认为Redux设计用于处理动画和过渡。如果你认为每个动画帧是一个状态,那么你必须每秒至少发送60个动作。这会让你的应用程序变得更复杂,而且没有什么好处。考虑这个场景:点击页面上的一个按钮,然后导航到另一个页面。在每个页面上定义状态是有意义的。但是如何定义导航堆栈的状态呢?我已经建立了一些应用程序,其中视图状态由于动画数量和性能要求而毫无意义。是的,我同意使用本地状态来控制动画的想法,但它仍然不是100%适合我!不,你做这件事的时间比我长!我同意你说的,我以前也看过丹的作品。我会接受这一点,因为这似乎是我所有对话中的共识。我完全同意@Ryan Pfister,但在某些特殊情况下,如react navigation嵌套navigator,如果您想使用选项卡导航器中的Onscroll设置堆栈导航器标题的动画,则redux是动画的一个不错选择