Tôi đang theo dõi React Tutorial và bị kẹt về cách sử dụng React.findDOMNode
.Sử dụng React.findDOMNode trong TypeScript
Đây là mã của tôi:
export class CommentForm extends React.Component<{}, {}> {
handleSubmit(e: React.FormEvent) {
e.preventDefault();
console.log(React.findDOMNode(this.refs['author']));
}
render() {
return <form className="commentForm" onSubmit={ e => this.handleSubmit(e) }>
<input type="text" placeholder="Your name" ref="author" />
<input type="text" placeholder="Say something..." ref="text" />
<input type="submit" value="Post" />
</form>;
}
}
Calling console.log(React.findDOMNode(this.refs['author']));
mang lại cho tôi trở lại <input type="text" data-reactid=".0.2.0" placeholder="Your name">
trong giao diện điều khiển. Tuy nhiên, tôi không thể tìm ra cách lấy giá trị của phần tử đầu vào (những gì tôi đã nhập trong hộp nhập liệu).
Cho đến nay tôi đã thử những điều sau đây cùng với một vài người khác:
React.findDOMNode(this.refs['author']).value; // "value" does not exist on type "Element"
React.findDOMNode(this.refs['author']).getAttribute('value'); // null
React.findDOMNode(this.refs['author']).textContent; // null
Trong IntelliSense tôi có thể thấy những điều sau đây, nhưng tôi vẫn không thể tìm ra những gì để gọi đây.
Tôi đang sử dụng định nghĩa loại từ DefinitedlyTyped. Ngoài ra, tôi mới phát triển front-end, vì vậy có lẽ cách tiếp cận của tôi là sai.
Cảm ơn! Tôi thực sự đã thử 'HTMLElement' và một vài loại khác, nhưng chúng không hoạt động. Bây giờ tôi thấy rằng để có được 'value' bạn phải sử dụng giao diện' HTMLInputElement'. Biết loại nào hơi phức tạp một chút. –
Tôi đang sử dụng 'React.findDOMNode' và nhận 'findDOMNode' không tồn tại trên' 'typeof _React''. Bất kỳ ý tưởng? –
Trả lời bản thân ... bằng cách sử dụng 'import * như ReactDOM từ 'phản ứng-dom';' và sau đó 'ReactDOM.findDOMNode' giải quyết vấn đề của tôi –