0

我的州

我有以下格式的项目数组:

[{ 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 }]

解决这个问题需要用左属性 30 和 40 移动这两个项目。它变成

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

项目的移动必须进行动画/补间。如何在 React 和 Flux 架构中强制执行此要求?

A. 通过调整模型的左侧属性来解决商店内的重叠问题,用补间反映视图中的变化。- 如何在 React 组件中反映对补间的更改?- 如何解决重叠问题?

4

1 回答 1

0

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

于 2015-10-18T13:25:34.787 回答