Reactjs 顺元';t从子组件进行调度
我不经常发帖子,但我已经搜索了一整天,这篇文章让我感到困惑 我有一个Redux连接的组件“Homepage”,它被React路由器作为索引加载 在“主页”中,我有一个子组件“EventCreate”,它连接到同一个Redux商店 然后我有一个Thunk,它使用异步Axios查询GraphQL端点 当我将thunk包含在我的“主页”组件中,并这样称呼它时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
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函数都工作得很好,因此它在调用中并不缺少道具。