我有一个商店,它的数据每秒增加 1。
我希望我的组件为一个矩形设置动画,随着数据的增加“水平填充”,基本上:
0
[ ]
0.2 #conceptually
[= ]
0.5 #conceptually
[==== ]
0.75 #conceptually
[===== ]
问题是我的商店没有通过这个“值”(0、0.2、0.5),而是每秒增加 1。
那是我的问题-> 存储数据不通过其间的值,因此,如果我的组件宽度接收数据,它显然只会在宽度上跳跃。
我正在考虑在渲染循环中设置状态,以便我可以手动减少状态变量。但是这是不可能的,因为我不能在渲染循环中调用 setState。
MyStore = Reflux.createStore
init: ->
@listenTo MyAction, @onStart
@getAllSurvivors()
onStart: ->
@time = 10
@iter true
@trigger @survivors
healUp: (first)->
@time += 1 if not first
if not timeoutID
timeoutID = setTimeout =>
unless @time >= 100
timeoutID = false
@iter false
else
@trigger @time
,
1000
@trigger @time
MyComp = React.createClass
#link @state.time to store
render: ->
return (
<ul>
<li> { @state.time } </li>
<!-- The Problem -->
<div> This should be a loading bar as '@state.time' increments </div>
</ul>
);
我应该如何在 ReactJS 中处理这个问题?使我的数据变为中间值(0.2、0.5...)似乎很糟糕,因为它更像是 UI 而非数据。