Моя конечная цель - получить доступ к this.props.location.pathname
внутри редукционной саги при совершении вызовов API. Вот мое текущее рабочее решение, хотя и реагируя на ошибку. Я использую mxstbr/react-boilerplate-brand
как свою кодовую базу.Доступ к реквизитам.location объекта from redux-saga
В моем компоненте обертывания App
у меня есть следующая строка в моем методе визуализации.
render() {
this.props.onUpdateLocation(this.props.location)
}
В моем mapDispatchToProps
У меня есть следующее. В основном я просто экономия this.props.location
в React магазине:
function mapDispatchToProps(dispatch) {
return {
onUpdateLocation: (location) => {
dispatch(updateLocation(location));
},
dispatch,
};
}
Внутри моего redux-saga
я доступ к хранилищу от государства и просто использовать его по мере надобности; однако, возникает ошибка React.
warning.js:44 Warning: setState(...): Cannot update during an existing state transition (such as within `render` or another component's constructor). Render methods should be a pure function of props and state; constructor side-effects are an anti-pattern, but can be moved to `componentWillMount`.
я не могу поставить его в componentWillMount
, потому что только увольняют один раз при запуске приложения, и я не могу поставить его в componentWillUpdate
, потому что this.props.location
обновляется в методе render
. Я не могу положить его в componentDidUpdate
, потому что уже слишком поздно.
Я просто пропустил какой-то простой очевидный способ доступа к местоположению реактивного маршрутизатора внутри моей саги о редуксе?
Наконец-то обернулся, чтобы атаковать эту проблему, и пока я могу получить доступ к информации о маршруте из 'ownProps', результатом будет сопоставимое выражение, а не реальный маршрут. То есть '/ brand/*/details' вместо'/brand/starbucks/details'. –
введите подстановочный знак '/ brand /: name/details' – igl
Ты потрясающий! Я отправлю свое окончательное решение о доступе к этим параметрам изнутри саги о редукции. –