Ich bin neu zu reactjs und jsx. Ich muss OnDragOver und OnDragStart Funktionalität von HTML5 in meinem Reaktionsprojekt verwenden. So I definiert sind Funktionen wie im Konstruktor mycode folgt:meine Funktionen im Konstruktor sind nicht erreichbar
export class Navbar extends React.Component {
constructor(props) {
super();
var allowDrop = function allowDrop(ev) {
ev.preventDefault();
}
function drag(ev) {
ev.dataTransfer.setData("source", ev.target.id);
}
function drop(ev) {
ev.preventDefault();
var src = document.getElementById(ev.dataTransfer.getData("source"));
var srcParent = src.parentNode;
var tgt = ev.currentTarget.firstElementChild;
ev.currentTarget.replaceChild(src, tgt);
srcParent.appendChild(tgt);
}
}
componentDidMount() {
}
render() {
return (
<ul className="navigation">
<li id="t1" className="nav-item" onDrop={this.drop(event)} onDragOver={this.allowDrop(event)}><a href="#"
draggable="true"
onDragStart={thisdrag(event)}>Greater
Saint John</a></li>
<li className="nav-item" id="t2" ondrop={this.drop(event)} onDragOver={this.allowDrop(event)}><a href="#"
draggable="true"
onDragStart={this.drag(event)}><span
className="glyphicon glyphicon-star"></span> The Victoria Star</a></li>
</ul>
);
}
}
Aber wenn ich laufe es ich folgende Fehlermeldung erhalten:
Uncaught TypeError: this.allowDrop is not a function
kann jemand helfen?
Sie erstellten eine Funktion, die nur auf den Konstruktor beschränkt ist. Wenn Sie eine Klassenmethode verwenden möchten, stellen Sie die Methode in die Klasse und nicht in den Konstruktor. – lux
@lux Danke für die Antwort, wenn ich meine Funktionen direkt zur Klasse hinzufügen Ich erhalte einen Kompilierungsfehler –
Was ist der genaue Fehler? – lux