当状态改变时,react-redux动画滞后

时间:2016-01-17 23:37:18

标签: react-native redux

我在react本机app中使用react-redux。 我有一个图标切换,当你切换它时会激活一个波纹。 (从这里:https://github.com/xinthink/react-native-material-kit#toggles,你可以在gif中看到它)

基本上我的状态看起来像这样:

Web.Debug.config

,组件是这样的:

{
    isChecked : false
}

然后我有一个reducer来处理CHANGE_STATE操作,并相应地从有效负载返回一个真或假的新状态。

事情是它可怕地落后,我认为因为它在动画仍在运行时重新渲染。 (我检查过,当我在减速器中什么也不做,只返回当前状态时它会顺利运行)

你会怎么建议解决这个问题?我唯一能想到的就是用超时调度异步动作来延迟动作。但这感觉不对。

1 个答案:

答案 0 :(得分:0)

尝试使用InteractionManager.runAfterInteractions

包装状态更改
    <MKIconToggle checked={checked}
      onCheckedChange={change => {
         InteractionManager.runAfterInteractions(()=>changeState(change.checked))}}>
    <Image source='img1'/>
    <Image state_checked={true} source='img2'/>
</MKIconToggle>;