Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
reactjs:使用FormGroup选择框,选择一个选项时如何路由到其他页面_Reactjs_React Router_React Bootstrap - Fatal编程技术网

reactjs:使用FormGroup选择框,选择一个选项时如何路由到其他页面

reactjs:使用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.

正如标题所说。我有一个选择框,假设我在“/home”上,当选择框中的一个选项是select时,我希望页面直接指向“/home/test”。我尝试了react路由器引导的LinkContainer。但它不适用于选项标记

有人能帮我吗?我使用的是react路由器v4


当前,您尝试在选择框中呈现链接,但这不起作用

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')
);