使用redux和thunk获取数据时,如何制作动画?

时间:2016-01-15 20:50:08

标签: redux redux-thunk

假设我有一个像Facebook这样的索引页面,上面有朋友列表。说我想预先取你的前十个朋友'配置文件,以便当您路由到其中一个配置文件时,应用程序不需要提出请求。

但是我想要将.x秒的转换设置为个人资料页面的动画,以便在未加载配置文件的情况下,您不会看到加载屏幕(希望实际请求会以低于动画时间的方式返回。)

让我头脑发热的棘手部分是:我什么时候改变路线并使用实际轮廓重新渲染页面(而不是过渡到它的动画)。

路由器似乎应该只关注获取必要的数据,等待,然后最终渲染实际的配置文件。

似乎行动创造者必须弄清楚何时改变路线。并且由于似乎只有在 BOTH 过渡 AND API调用完成之后才能更改路径,我能想到的唯一方法就是使用一个动作创建器看起来像:

    function visit_profile(profile_id) {
      return (dispatch) => {
        download_promise = dispatch(download_profile(profile_id));
        animation_promise = dispatch(transition_to_profile(profile_id));
        return Promise.all([download_promise, animation_promise]).then(
          (profile) => dispatch(view_profile(profile_id)),
          (error) => dispatch(404_profile())
        );
      };
    }

    // Downloads a profile and puts it into store.
    function download_profile() { ... }

    // Kicks off the animations (with a promise that is resolved when the animation is finished).
    function transition_to_profile() { ... }

    // Changes the URL, thereby re-rendering the page with the actual profile.
    function view_profile() { ... }

但这对我来说似乎过于复杂。每当我在redux中做正确的事时,我知道,因为它感觉正确。这不是。似乎有些事情是错的。但我无法通过其他方式去做。但是,在查看了很多例子之后,我才发现任何让我走上正确道路的事情。

对此有没有既定的约定?

谢谢!

0 个答案:

没有答案