我的最終目標是在進行API調用時訪問this.props.location.pathname
內部的傳奇。這是我目前的工作解決方案,儘管反應會引發錯誤。我使用mxstbr/react-boilerplate-brand
作爲我的代碼庫。從redux傳奇訪問props.location對象
在我的包裝組件App
中,我在我的渲染方法中有以下行。
render() {
this.props.onUpdateLocation(this.props.location)
}
在我的mapDispatchToProps
我有以下。基本上我只是節省this.props.location
入陣營店:
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
因爲這太遲了。
我是否錯過了一些簡單明顯的方式來訪問我的redux-saga中的react-router位置?
終於開始攻擊這個問題,雖然我可以從'ownProps'訪問路由信息,結果是匹配的表達式,而不是真正的路由。即'/ brand/*/details'而不是'/ brand/starbucks/details'。 –
給通配符一個名字'/ brand /:name/details' – igl
你太棒了!我會發布我最終的解決方案,從REDX-SAGA中獲取這些參數。 –