Я не часто публикую сообщения, но я искал весь день, и это меня озадачило.
У меня есть подключенный компонент Redux "Домашняя страница", который загружается в качестве индекса React Router.
В «Домашней странице» у меня есть дочерний компонент «EventCreate», который подключен к тому же хранилищу Redux.
Затем у меня есть Thunk, который использует Asyn c Ax ios для запроса Конечная точка GraphQL.
Когда я включаю thunk в свой компонент "Домашняя страница" и называю его так ...
componentDidMount() {
const { getEvent } = this.props
const db_query = `query {
allEvent {
data {
slug
}}}`
getEvent(db_query)
}
, и это Thunk в моем основном файле Actions, вызов.
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)); } );
};
}
Как вы можете видеть, он вызывает действие START и SUCCESS или ERROR.
Вот где я застрял ...
Он работает как ожидается в "Домашней странице>", но не работает в "EventCreate". Он запускает действие, но ничего не делает внутри отправки Thunk. Никаких ошибок или чего-то еще, просто пропустите эту часть по какой-то причине.
В случае необходимости я подключаю оба к Redux, как это ...
const mapDispatchToProps = {
getEvent
}
export default compose(connect(mapStateToProps, mapDispatchToProps))(HomePage)
Затем в моем дочернем компоненте ...
const mapDispatchToProps = {
getEvent
}
export default compose(connect(mapStateToProps, mapDispatchToProps))(EventCreate)
Само действие импортируется как ...
import { getEvent } from '../actions'
Любая помощь будет оценена SOOOOO.