如何获取调度冗余
How to get dispatch redux
我正在学习 redux 和 react。我正在遵循一些教程,以便制作应用程序。
我有这个action
:
export function getDueDates(){
return {
type: 'getDueDate',
todo
}
}
这是商店:
import { createStore } from 'redux';
import duedates from './reducers/duedates'
export default createStore(duedates)
这是减速器:
从"不可变"导入不可变
export default (state = Immutable.List(['Code More!']), action) => {
switch(action.type) {
case 'getDueDate':
return state.unshift(action.todo)
default:
return state
}
}
在entry point js
我有这个:
import React from 'react';
import ReactDOM from 'react-dom';
import store from './app/store'
import { Provider } from 'react-redux'
import App from './app/Components/AppComponent';
ReactDOM.render(
<Provider store={store}>
<App />
</Provider>,
document.getElementById('app')
);
现在,(根据一些示例),我应该从dispatch
调用getDueDate
,但我不知道如何获取组件上的dispatch
以触发操作
使用react-redux
包中的connect
。它有两个函数作为参数,mapStateToProps
和mapDispatchToProps
,你现在感兴趣。根据Nick Ball的回答,这是部分正确的,您将像这样导出:
export default connect(mapStateToProps, mapDispatchToProps)(App)
您的mapDispatchToProps
将如下所示:
function mapDispatchToProps (dispatch, ownProps) {
return {
getDueDate: dispatch(getDueDate(ownProps.id))
}
}
只要连接到存储的组件具有从上面传递的属性 ID,您就可以从其内部调用this.props.getDueDate()
。
编辑:在这种情况下可能不需要使用id
,但我的观点是指出道具作为第二个参数:)
这里缺少的是react-redux
的connect
函数。此函数会将组件"连接"到存储区,为其提供dispatch
方法。 具体如何执行此操作存在差异,因此我建议阅读文档,但一个简单的方法是这样的:
// app/Components/AppComponent.js
import { connect } from 'react-redux';
export class App extends React.Component {
/* ...you regular class stuff */
render() {
// todos are available as props here from the `mapStateToProps`
const { todos, dispatch } = this.props;
return <div> /* ... */ </div>;
}
}
function mapStateToProps(state) {
return {
todos: state.todos
};
}
// The default export is now the "connected" component
// You'll be provided the dispatch method as a prop
export default connect(mapStateToProps)(App);
相关文章:
- 缓存的最佳实践.避免冗余缓存
- UMD:正在分配给模块,导出冗余
- 如何更正阵列中的这种冗余
- Regex删除涉及零或一的冗余乘法/除法
- 删除方法中的冗余代码
- 多选择器冗余
- 简化冗余jquery's代码
- 排列具有相同数据的多个对象(减少冗余)
- Meteor模板-继承或外包事件以避免代码冗余
- HTML-减少HTML代码冗余
- 如果我两次使用相同的反应/冗余组件,它们会共享状态吗?
- 等待多个 ipc 调用完成,然后再继续电子/冗余
- 在 Javascript 中模拟“IN”运算符以简化冗余逻辑 OR 的最佳解决方案是什么?
- elasticsearch:保留冗余(非规范化)数据或保留 id 列表以进行交叉引用
- 如何获取调度冗余
- 编写函数以防止冗余
- 如何避免客户端验证中的冗余条件
- 同构反应-路由器-冗余同步历史中间件
- ExtJS - 如何创建可重用的函数以避免代码冗余
- 构建本地化反应/冗余应用程序的存储