Reactjs 如何在redux中链接操作
从研究中,我发现thunk是一种工具,您可以使用它将动作链接在一起和/或处理回调、异步动作和副作用 我听不懂导游的话。他们总是引用“store.dispatch”(就像大多数关于redux的教程一样),但我从来没有真正调用过dispatch,也从来没有访问过“store”,所以我不确定如何实现他们提出的任何建议。(我假设这是因为我在react中使用mapDispatchToProps…,这在我的action creators文件中不是一个选项) 下面是我的动作创建者(为了清晰起见删除了一些代码): 我想做的事情列在“待办事项”中 我有另一个动作,在不同的动作创建者文件和不同的缩减器中称为EVENT_LINK_TABLE,它将这个动作创建者的uuid作为参数。我想在完成将此事件创建为新事件后立即发送此事件链接表操作(使用uuid) 此外,我还想调用一个标准回调(实际上它将调度另一个操作-LOAD_SAMPLNG_事件)。。但我不确定如何调用回调并返回操作。我还听说,动作创造者那样做是不好的做法,如果在创作过程中出现失败,我也不希望这种情况发生 要添加其他信息,我将在我的react代码中发送操作:\Reactjs 如何在redux中链接操作,reactjs,redux,Reactjs,Redux,从研究中,我发现thunk是一种工具,您可以使用它将动作链接在一起和/或处理回调、异步动作和副作用 我听不懂导游的话。他们总是引用“store.dispatch”(就像大多数关于redux的教程一样),但我从来没有真正调用过dispatch,也从来没有访问过“store”,所以我不确定如何实现他们提出的任何建议。(我假设这是因为我在react中使用mapDispatchToProps…,这在我的action creators文件中不是一个选项) 下面是我的动作创建者(为了清晰起见删除了一些代码)
handleBrandNewButtonClick = () => {
this.props.createNewSamplingEvent(this.state.newSamplingEventName);
}
该组件通过以下方式“连接”:
const mapStateToProps = function (state) {
return {
samplingEvents: state.SamplingEvents, //to get list of sampling events to check for uniqueness for that user
}
}
const mapDispatchToProps = {
createNewSamplingEvent,
}
export default withRouter(
withStyles(styles, { withTheme: true })
(connect(mapStateToProps, mapDispatchToProps)
(NewEventForm)
)
);
看起来你对redux没有足够的了解。我会告诉你redux商店是如何运作的。然后您将能够理解redux 在redux,我们有五件事 动作创建者、动作、调度程序、还原程序、存储 想象一下你想开一家保险公司。好的,这是我们的第一位客户。他来到公司要求“嘿,我需要开一个新账户” 现在前台人员会说,‘好的,填好这张表格,交给我’,一旦他把表格交给前台,那么这个人就可以离开了
因此,我们将dispatcher作为动作创建者的参数。然后,一旦我们从异步进程中获得结果,现在我们就可以在action creator中手动调度结果。这个redux thunk充当调度器和还原器之间的中间件 看起来您对redux没有足够的了解。我会告诉你redux商店是如何运作的。然后您将能够理解redux 在redux,我们有五件事 动作创建者、动作、调度程序、还原程序、存储 想象一下你想开一家保险公司。好的,这是我们的第一位客户。他来到公司要求“嘿,我需要开一个新账户” 现在前台人员会说,‘好的,填好这张表格,交给我’,一旦他把表格交给前台,那么这个人就可以离开了
因此,我们将dispatcher作为动作创建者的参数。然后,一旦我们从异步进程中获得结果,现在我们就可以在action creator中手动调度结果。这个redux thunk充当调度器和还原器之间的中间件 您可以在函数内部运行业务逻辑,并
分派操作本身。动作创建者,setNewsCreator
创建一个POJO。然后,该POJO被分派为一个动作,该动作将被减速器拾取
// action creator
const setNewsCreator = ({ news }) => ({ type: 'SET_NEWS', news })
const fetchNews = () => async dispatch => {
const response = await getNews()
dispatch(setNewsCreator({ news: response }))
}
以及它在组件中的用法
componentDidMount() {
this.props.fetchNews() // assuming you've added this function to your mapDispatchToProps
}
为我的第一句话道歉。事后看来,我没有正确解释操作。您可以在函数内部运行业务逻辑,并分派操作本身。动作创建者,setNewsCreator
创建一个POJO。然后,该POJO将被dispatch
ed作为一个将被选中的操作
componentDidMount() {
this.props.fetchNews() // assuming you've added this function to your mapDispatchToProps
}