Я изучаю Think in React, но не понимаю, почему в SearchBar в этом примере должны быть value={this.props.filterText}
и checked={this.props.inStockOnly}
, jsFiddle по-прежнему работает без них, и нет смысла, чтобы реквизит передавался в SearchBar как Поиск - это тот, который обрабатывает пользовательский ввод и вносит изменения в состояние. Пользовательский ввод будет отражен в значении ввода без его установки на this.props.filterText
, так почему он?Какова цель передачи реквизитов в панель поиска React?
var SearchBar = React.createClass({
handleChange: function() {
this.props.onUserInput(
this.refs.filterTextInput.value,
this.refs.inStockOnlyInput.checked
);
},
render: function() {
return (
<form>
<input
type="text"
placeholder="Search..."
value={this.props.filterText}
ref="filterTextInput"
onChange={this.handleChange}
/>
<p>
<input
type="checkbox"
checked={this.props.inStockOnly}
ref="inStockOnlyInput"
onChange={this.handleChange}
/>
{' '}
Only show products in stock
</p>
</form>
);
}
});
Вы делаете большую точку. Пример путается, однако было бы полезно, если бы у вас были реквизиты, чтобы вы могли создать экземпляр SearchBar со значением по умолчанию от родителя, например ' ' –
azium