- 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 条
- 全部回答
-
萌主殿下 普通会员 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对象。
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部
