Ответ 1
Я сделаю предположение, что вы не создаете одностраничное приложение и не используете что-то вдоль линий React router. И то, что вам нужно сделать, это просто перейти к URL-адресу на основе ввода.
Существует два основных способа работы в зависимости от того, на какой вы хотите:
- Стиль
<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>
и перенаправляйте программно:
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
.