Nel mio componente React ho un pulsante che serve per inviare alcuni dati su AJAX quando si fa clic. Devo accadere solo la prima volta, cioè per disabilitare il pulsante dopo il suo primo utilizzo.ReactJs: Prevenire più volte premere il tasto
Come sto cercando di fare questo:
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>
);
}
});
Quello che penso accade è lo stato variabile showUploadButton
non essere aggiornato subito, che la Reagire docs dice è previsto.
Come si può far applicare il pulsante per disabilitarlo o andare via tutto insieme nell'istante in cui viene fatto clic?
Questo mi ha fatto a metà strada, ma la squadra Reagire ha deprecato dando ref un valore stringa, e invece usa con esso un callback: https://reactjs.org/docs/refs-and-the-dom.html – Martin