Я не часто публикую сообщения, но я искал весь день, и это меня сбило с толку.
У меня есть подключенный к Redux компонент «Домашняя страница», который загружается React Router в качестве индекса.
На «Домашней странице» у меня есть дочерний компонент «EventCreate», который подключен к тому же магазину Redux.
Затем у меня есть Thunk, который использует Async Axios для запроса конечной точки GraphQL.
Когда я включаю преобразователь в свой компонент "Домашняя страница" и называю его так...
componentDidMount() {
const { getEvent } = this.props
const db_query = `query {
allEvent {
data {
slug
}}}`
getEvent(db_query)
}
и это преобразователь в моем основном файле действий, который он вызывает.
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.
compose(connect(mapStateToProps, mapDispatchToProps))
. Я не вижу, чтобы вы подключали EventCreate к redux:export default connect(mapStateToProps, {eventCreate})(EventCreate)
- person HMR   schedule 19.04.2020getEvent
после импорта и в функции рендеринга EventCreate. В консоли можно нажать на результат и посмотреть, откуда берутся эти функции. После импорта он должен исходить из файла создателя действия, а при рендеринге он должен исходить из реактивного редукса. - person HMR   schedule 19.04.2020