Tôi đang thử bit React.js đầu tiên của mình và được sắp xếp sớm vào ... Tôi có mã bên dưới, biểu mẫu tìm kiếm này sẽ được chuyển thành <div id="search"></div>
. Nhưng nhập vào hộp tìm kiếm sẽ không làm gì cả.Không thể nhập vào trường văn bản Phản hồi đầu vào
Có lẽ có điều gì đó đang thiếu đi qua các đạo cụ và trạng thái lên xuống, và điều này có vẻ như là một vấn đề phổ biến. Nhưng tôi đang bối rối - tôi không thể thấy những gì còn thiếu.
var SearchFacet = React.createClass({
handleChange: function() {
this.props.onUserInput(
this.refs.searchStringInput.value
)
},
render: function() {
return (
<div>
Search for:
<input
type="text"
value={this.props.searchString}
ref="searchStringInput"
onchange={this.handleChange} />
</div>
);
}
});
var SearchTool = React.createClass({
render: function() {
return (
<form>
<SearchFacet
searchString={this.props.searchString}
onUserInput={this.props.onUserInput}
/>
<button>Search</button>
</form>
);
}
});
var Searcher = React.createClass({
getInitialState: function() {
return {
searchString: ''
}
},
handleUserInput: function(searchString) {
this.setState({
searchString: searchString
})
},
render: function() {
return (
<div>
<SearchTool
searchString={this.state.searchString}
onUserInput={this.handleUserInput}
/>
</div>
);
}
});
ReactDOM.render(
<Searcher />,
document.getElementById('searcher')
);
(Cuối cùng tôi sẽ có các loại SearchFacet*
nhưng Tôi chỉ cố gắng để có được một này làm việc.)
Thử đăng nhập 'this' khi bạn nhập trường văn bản. Có thể là 'this' không phải là thành phần 'Searcher' nữa. – FaureHu
Cảm ơn FaureHu - đăng nhập 'this' tại thời điểm nào trong mã? Cố gắng đăng nhập từ 'Searcher.handleUserInput()' hoặc 'SearchFacet.handleChange()' không làm gì cả. –
bạn có thể thấy câu trả lời của tôi cho các câu hỏi tương tự. Bạn có thể tìm thấy giải thích chi tiết: http://stackoverflow.com/questions/34713718/input-field-doesnt-receive-keyboard-events-when-rendering-with-value-property/36871399?noredirect=1#comment61310144_36871399 –