我正在学习redux并使用react。我正在遵循一些教程,以制作一个应用程序。

我有这个action:

export function getDueDates(){
  return {
    type: 'getDueDate',
    todo
  }
}

这是商店:
import { createStore } from 'redux';
import duedates from './reducers/duedates'

export default createStore(duedates)

这是 reducer :

从'immutable'导入不可变
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')
);

现在,(根据一些示例),我应该从getDueDate调用dispatch,但是我不知道如何在组件上获取dispatch来触发操作

最佳答案

使用connect包中的react-redux。它具有两个函数param,mapStateToPropsmapDispatchToProps,您现在对此感兴趣。根据部分正确的Nick Ball的回答,您将像这样导出:
export default connect(mapStateToProps, mapDispatchToProps)(App)
并且您的mapDispatchToProps将如下所示:

function mapDispatchToProps (dispatch, ownProps) {
  return {
    getDueDate: dispatch(getDueDate(ownProps.id))
  }
}

只要连接到商店的组件具有从上方传递的属性ID,您就可以从内部调用this.props.getDueDate()

编辑:在这种情况下,可能不需要使用id,但是我的观点是指出 Prop 作为第二个参数:)

关于javascript - 如何获得调度Redux,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35526940/

10-09 15:38
查看更多