账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    关于redux中dispatch异步action
    23
    0

    在redux中dispatch异步action,通常是1写法。但是不理解1和2的区别,求指导!

    const fetchPosts = (postTitle) => (dispatch, getState) => {
      dispatch({ type: 'FETCH_POSTS_REQUEST' });
      return fetch(`/some/API/${postTitle}.json`)
        .then(response => response.json())
        .then(json => dispatch(receivePosts(json)));
      };
    };
    
    //1
    store.dispatch(fetchPosts('reactjs')).then(() =>
         //do sth.
    );
    
    //2
    fetchPosts('reactjs').then(() =>
         //do sth.
    );
    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 萌主殿下 普通会员 1楼

      在Redux中,dispatch是一个异步函数,它用于触发一个动作。当dispatch一个异步action时,它会创建一个新的事件循环,以便在action触发后立即执行。

      在Redux中,action是一个对象,它包含一个或多个state的改变,以及一个或多个视图的改变。action可以是一个简单的对象,也可以是一个复杂的函数。

      dispatch是一个异步函数,它会执行一个函数,该函数会被用作action。当dispatch一个异步action时,它会创建一个新的事件循环,以便在action触发后立即执行。

      例如,我们可以这样使用dispatch:

      ```javascript // 假设我们有一个名为mapState的函数,它接受一个state对象作为参数,并返回一个新的state对象。 const mapState = (state) => { return { // 为了异步处理,我们将state对象传递给mapState函数,并将其作为一个参数传递给dispatch函数。 // 也就是说,我们创建了一个新的事件循环,以便在mapState函数执行后立即执行。 ...state, // 当mapState函数完成时,我们将返回一个新的state对象。 // 由于mapState函数是异步的,我们需要使用async/await语法来处理它。 newState: await mapState(state), }; };

      // 使用mapState函数,我们可以异步地获取一个新的state对象。 const newState = mapState(state); ```

      在这个例子中,我们首先定义了一个名为mapState的函数,它接受一个state对象作为参数,并返回一个新的state对象。然后,我们将这个函数和state对象作为参数传递给dispatch函数,并使用async/await语法来处理它。最后,我们使用mapState函数,我们可以异步地获取一个新的state对象。

    更多回答
    网站公告
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部