Trong thành phần React của tôi, tôi có một nút để gửi một số dữ liệu qua AJAX khi được nhấp. Tôi chỉ cần xảy ra lần đầu tiên, tức là tắt nút sau lần sử dụng đầu tiên.ReactJs: Ngăn chặn nhiều lần nhấn nút
Làm thế nào tôi đang cố gắng để làm điều này:
var UploadArea = React.createClass({
getInitialState() {
return {
showUploadButton: true
};
},
disableUploadButton(callback) {
this.setState({ showUploadButton: false }, callback);
},
// This was simpler before I started trying everything I could think of
onClickUploadFile() {
if (!this.state.showUploadButton) {
return;
}
this.disableUploadButton(function() {
$.ajax({
[...]
});
});
},
render() {
var uploadButton;
if (this.state.showUploadButton) {
uploadButton = (
<button onClick={this.onClickUploadFile}>Send</button>
);
}
return (
<div>
{uploadButton}
</div>
);
}
});
Những gì tôi nghĩ sẽ xảy ra là trạng thái biến showUploadButton
không được cập nhật ngay lập tức, mà Phản ứng tài liệu cho biết dự kiến.
Làm cách nào tôi có thể thực thi nút bị vô hiệu hóa hoặc biến mất tất cả cùng lúc ngay khi nút được nhấp?
này đã cho tôi một nửa con đường đó, nhưng nhóm nghiên cứu Phản ứng đã bị phản đối cho ref một giá trị chuỗi, và thay vào đó đang sử dụng với nó một cuộc gọi lại: https://reactjs.org/docs/refs-and-the-dom.html – Martin