我将假设您不是在构建单页应用程序并使用 React 路由器之类的东西。而您需要做的只是根据输入导航到一个 url。
根据您的意愿,有两种主要方式:
- 样式 an
<a>
作为您的按钮:
var Component = React.createClass({
getInitialState: function() { return {query: ''} },
queryChange: function(evt) {
this.setState({query: evt.target.value});
},
_buildLinkHref: function() {
return '/search/'+this.state.query+'/some-action';
},
render: function() {
return (
<div className="component-wrapper">
<input type="text" value={this.state.query} />
<a href={this._buildLinkHref()} className="button">
Search
</a>
</div>
);
}
});
通过这种方式,您可以将查询(输入的值)保持在状态中。每当输入更改时,链接的 href 都会自动更改。
- 以
<button>
编程方式使用 a和重定向:
var Component = React.createClass({
getInitialState: function() { return {query: ''} },
queryChange: function(evt) {
this.setState({query: evt.target.value});
},
handleSearch: function() {
window.location = '/search/'+this.state.query+'/some-action';
},
render: function() {
return (
<div className="component-wrapper">
<input type="text" value={this.state.query} />
<button onClick={this.handleSearch()} className="button">
Search
</button>
</div>
);
}
});
通过这种方式,您可以通过将所需位置设置为以编程方式处理重定向window.location
。