我正在使用React Router V4來學習React for Beginner教程。但是我無法在我的組件中獲得我的參數。這裏是我的代碼的一部分。React路由器V4無法獲得匹配參數
const Root =() => {
return (
<BrowserRouter>
<div>
<Switch>
<Route exact path='/' component={StorePicker} />
<Route Path='store/:storeId' component={App} />
<Route component={NotFound} />
</Switch>
</div>
</BrowserRouter>
)
}
StorePicker組件:
class StorePicker extends React.Component {
render() {
return (
<form className="store-selector" onSubmit={(e) => this.goToStore(e)}>
<h2>Please Enter A Store</h2>
<input type="text" ref={(input) => { this.storeInput= input; }} defaultValue={getFunName()} placeholder="Store Name" required/>
<button type="submit">Visit Store</button>
</form>
)
}
goToStore(event) {
event.preventDefault()
const storeInput = this.storeInput.value
console.log(storeInput)
this.props.history.push(`store/${storeInput}`)
}
}
而且在我的應用程序組件,我不能得到STOREID。
//storeId is undefine
this.props.match.params.storeId
我的代碼有什麼問題?
你能提供全StorePicker組件文件:
我從反應路由器網站把這個直接? –
@AnkitParikh我已經更新了我的代碼 –
它是否需要' '? –
bennygenel