如何在反应中对模型变化进行渐变,或者在哪里解决冲突以实现流畅的纯渲染



我的状态

我有一个数组项,格式如下:

[{ left: 0 }, { left: 10 }, { left: 20 }]

我可以添加一个项目{ left: 30 }到这个数组:

[{ left: 0 }, { left: 10 }, { left: 20 }, { left: 30 }]

我可以添加一个重复的项目{ left: 20 }到这个数组:

[{ left: 0 }, { left: 10 }, { left: 20 }, { left: 20 }, { left: 30 }]

我认为

我必须在平面上渲染这些项目,在位置x,其中x是它们的左属性。

[{ left: 0 }, { left: 10 }, { left: 20 }]渲染|item1 item2 item3|

[{ left: 0 }, { left: 10 }, { left: 20 }, { left: 30 }]渲染|item1 item2 item3 item4 item5|

当存在重复时,我必须通过向左或向右移动元素来解决这个重复。所以

[{ left: 0 }, { left: 10 }, { left: 20 }, { left: 20 }, { left: 30 }]渲染|item1 item2 item3 item4 item5|

所以它们不应该重叠

我可以一个一个地添加新项,其中新项可以是任意左属性的10倍。

在重叠的情况下,项目应该通过右移来解决重叠。

这可能导致多个项目向右移动。

的例子:

[{ left: 0 }, { left: 10 }, { left: 20 }, { left: 20 }, { left: 30 }, { left: 40 }]

解决这个问题需要移动两个带有left属性的项30和40。它变成了

[{ left: 0 }, { left: 10 }, { left: 20 }, { left: 30 }, { left: 40 }, { left: 50 }]

移动的项目必须动画/补间。我如何在React和flux架构中执行这个要求?

。通过调整模型的左侧属性来解决存储中的重叠,用渐变来反映视图中的变化。如何在React组件中反映渐变的变化?-如何解决重叠?

你可以使用React Motion这样的库。
它可以像你描述的那样在列表之间进行过渡。

最新更新