reactjs:使用FormGroup选择框,选择一个选项时如何路由到其他页面
正如标题所说。我有一个选择框,假设我在“/home”上,当选择框中的一个选项是select时,我希望页面直接指向“/home/test”。我尝试了react路由器引导的LinkContainer。但它不适用于选项标记 有人能帮我吗?我使用的是react路由器v4reactjs:使用FormGroup选择框,选择一个选项时如何路由到其他页面,reactjs,react-router,react-bootstrap,Reactjs,React Router,React Bootstrap,正如标题所说。我有一个选择框,假设我在“/home”上,当选择框中的一个选项是select时,我希望页面直接指向“/home/test”。我尝试了react路由器引导的LinkContainer。但它不适用于选项标记 有人能帮我吗?我使用的是react路由器v4 当前,您尝试在选择框中呈现链接,但这不起作用 React路由器等都为您创建带有正确url的标记。 您需要做的是创建一个包含s的正确的。并在控制台上处理onChange事件,并从onChange处理程序中重定向应用程序。通过window.
当前,您尝试在选择框中呈现链接,但这不起作用 React路由器等都为您创建带有正确url的标记。 您需要做的是创建一个包含s的正确的。并在控制台上处理onChange事件,并从onChange处理程序中重定向应用程序。通过window.location=/your/new/page,或者如果您想在内部路由,您可以从react routermore获取历史对象 1我知道这个答案并没有详细介绍如何从一个偶数处理程序中导航,但在react router中api会随着版本的不同而变化,所以请按照我的建议查看他们的文档,并阅读他们如何为您的版本导航。对于v4,建议使用WithHoc路由器
2另一种选择是不创建选择框,只创建一个链接列表并自己设置样式,这样内部就可以工作,但如果您需要选择框,这是更进一步的方法。您是否在任何父项上都有onChange事件?
<FormGroup controlId="formControlsSelect">
<ControlLabel>Please select one of the following: </ControlLabel>
<FormControl componentClass="select" placeholder="select">
<option value="select"></option>
<LinkContainer to={`${match.url}/test`} >
<option value="select">TEST</option>
</LinkContainer>
</FormControl>
</FormGroup>
<Route exact path={`${match.url}/test`} component={Test}/>
class HelloWorldComponent extends React.Component {
onUrlSelected(e){
console.log(e.currentTarget.value);
//Navigate using 'window.location =' here or use
//react routers "withRouter" to access the history and history.push("/your/local/url")
}
render() {
return <select onChange={this.onUrlSelected}>
<option value="www.google.com">Label 1</option>
<option value="/some/internal/url/as/value">Label 2</option>
</select>;
}
}
React.render(
<HelloWorldComponent/>,
document.getElementById('react_example')
);