Reactjs 顺元';t从子组件进行调度

Reactjs 顺元';t从子组件进行调度,reactjs,redux,axios,dispatch,thunk,Reactjs,Redux,Axios,Dispatch,Thunk,我不经常发帖子,但我已经搜索了一整天,这篇文章让我感到困惑 我有一个Redux连接的组件“Homepage”,它被React路由器作为索引加载 在“主页”中,我有一个子组件“EventCreate”,它连接到同一个Redux商店 然后我有一个Thunk,它使用异步Axios查询GraphQL端点 当我将thunk包含在我的“主页”组件中,并这样称呼它时 componentDidMount() { const { getEvent } = this.props const db_que

我不经常发帖子,但我已经搜索了一整天,这篇文章让我感到困惑

我有一个Redux连接的组件“Homepage”,它被React路由器作为索引加载

在“主页”中,我有一个子组件“EventCreate”,它连接到同一个Redux商店

然后我有一个Thunk,它使用异步Axios查询GraphQL端点

当我将thunk包含在我的“主页”组件中,并这样称呼它时

componentDidMount() {
   const { getEvent } = this.props
   const db_query = `query {
          allEvent {
            data {
              slug
              }}}`
   getEvent(db_query)
 }
const mapDispatchToProps = {
  getEvent
}

export default compose(connect(mapStateToProps, mapDispatchToProps))(HomePage)
这是我的主要动作文件中的重击

export function getEvent(db_query) {
   return dispatch => {
      console.log(db_query)
      dispatch(getEventBegin());
      return axios({
      url: '<GRAPHQL ENDPOINT>',
      method: 'post',
      headers: { "Authorization" : <KEY> },
      data: {
        query: db_query
      }
    }).then((result) => {
      console.log("Query Result:")
      console.log(result)
      dispatch(getEventSuccess(result));
    }).catch(error => { dispatch(getEventFailure(error)); } );
  };
}
然后在我的子组件中

const mapDispatchToProps = {
  getEvent
}

export default compose(connect(mapStateToProps, mapDispatchToProps))(EventCreate)
动作本身是导入的,就像

import { getEvent } from '../actions'

任何帮助都将不胜感激。

指定调度将其修复。不知道为什么

const mapDispatchToProps = (dispatch) => {
return {
  getEvent: (dbQuery) => dispatch(getEvent(dbQuery))
}

}

您可以在
compose(connect(mapStateToProps,mapsDispatchToprops))
中省略compose:
导出默认连接(mapStateToProps,{EventCreate})(EventCreate)
感谢您的响应。我以与主页相同的方式连接EventCreate,我键入了主页,但没有明确说明,我将对其进行修复。您传递给connect的第二个参数是什么?它是否应该像组件名一样是EventCreate,而只是一个小写输入?如果是这样的话,我是通过那个而不是我的调度吗?应该是getEventoh明白了。我正在连接子组件EventCreate,它已经能够调用该操作,但由于某些原因,分派部分无法启动。您可以尝试在导入后在EventCreate的呈现函数中对
getEvent
进行console.log。在控制台中,您可以单击结果并查看这些函数的来源。导入后,它应该来自action creator文件,在渲染中它应该来自react reduxNo,而不是,
connect(MapStateTrops,{getEvent})
也可以正常工作。可能是名为getEvent的EventCreate组件被导入,而不是props.getEvent.抱歉,在深夜写的,并不意味着Thunk需要它,只是我的,但是的,我真希望我知道到底是什么导致了这个问题。我的所有其他Redux函数都工作得很好,因此它在调用中并不缺少道具。