我是一種新的reactjs,我正在一步一步學習。我遇到了一個問題,那就是當我嘗試訪問道具中的位置參數時,它返回我undefined
。我試圖找到解決辦法,但大多數人都寫我要補充我的組件中的路由器,但我包裹它在路由器,但仍,我沒有獲得位置參數位置缺少道具(ReactJS)
export const abcdContainer = withRouter(connect(
mapStateToProps,
mapDispatchToProps
)(abcd));
我試圖訪問和組件中的位置參數,但問題是它中沒有位置參數。誰能告訴我它是什麼,是怎麼了?
請,如果有人知道什麼是錯了,請告訴我,我已經花了我半天,我無法弄清楚
代碼和版本添加了URL
路由器版本=> 2.8.1
網址:http://localhost:3000/somePage?someParam=cm9oYW5qYWxpbHRlYWNoZXJAZ21haWwuY29t
abcdContainer.js
const mapStateToProps = (state, ownProps) => {
// some code over here
}
const mapDispatchToProps = (dispatch, ownProps) => {
// some code over here
};
export const abcdContainer = withRouter(connect(
mapStateToProps,
mapDispatchToProps
)(abcd));
abcd.jsx
class abcd extends Component {
constructor(props, context) {
super(props, context);
this.state = {
// setting state over here
};
}
abcdFunction(){
if (this.props.location.query.someParam !== undefined){ // trying to extract someParam value from location
// some code over here
}
}
render() {
// some code over here
}
}
export default CSSModules(abcd, styles, { allowMultiple: true });
這裏是流。路由器重定向到容器中,然後將容器重定向到真正的組件
Route.js
export const Routes = ({ store }) => (
<Provider store={store}>
<Router history={browserHistory}>
<Route path="/" component={aContainer}>
<IndexRoute component={IContainer} />
// some routes
<Route path="/openAbcd" component={() => (<abcdContainer caller="aaaaaaa" />)} />
// some routes
</Route>
// some routes
</Router>
</Provider>
);
Routes.propTypes = {
store: React.PropTypes.object.isRequired,
};
你必須提供一個更完整的例子,否則將很難說。發佈包含組件的代碼的最小但完整的示例。你正在使用哪個版本的react-router? – trixn
@trixn我已經添加了代碼和版本 – Gardezi
您是否期望位置對象成爲窗口中的一個或命名與此類似?在任何情況下,它都不是道具,因爲沒有父組件傳遞給孩子。 – terpinmd