2017-09-22 1 views
1

Ich versuche, Werte zu erhalten, was in react-handsontable Komponente geändert hat Ich verwende:ReactJS - Handsontable - bestimmen Änderungen

<HotTable root="hot" 
       data={this.state.handsontableData} 
       colHeaders={this.handsontableColumns} 
       rowHeaders={true} 
       width="1200" 
       height="300" 
       stretchH="all" 
       colWidths={this.handsontableColWidths} 
       onAfterChange={this.handleHOTChange(changes, source)} /> 

Aber onAfterChange={this.handleHOTChange(changes, source)} wirft Fehler:

./src/MyComponent.jsx 
    Line 73: 'changes' is not defined no-undef 
    Line 73: 'source' is not defined no-undef 

Kann jemand bitte sagen Wie kann ich "Änderungen" vom Event bekommen? Wenn ich einfach onAfterChange={this.handleHOTChange} ohne Argumente verwende, wird handleHOTchanges Funktion bei Änderung aufgerufen. Aber wie ermittle ich dann, was sich geändert hat?

Antwort

3

Ah, wurde dieses Problem behoben:

Below Lösung ist:

<HotTable root="hot" 
       data={this.state.handsontableData} 
       colHeaders={this.handsontableColumns} 
       rowHeaders={true} 
       width="1200" 
       height="300" 
       stretchH="all" 
       colWidths={this.handsontableColWidths} 
       onAfterChange={(changes, source) => this.handleHOTChange(changes, source)} /> 

Key war Pfeil Funktion Syntax: (changes, source) => this.handleHOTChange(changes, source)

und unten ist beispielsweise Handler Funktionsargument in der Konsole empfangen drucken :

handleHOTChange(changes, source) { 
    alert('changed!'); 
    console.log(changes); 
    }