我正在尝试获取正在使用的react-handsontable组件中发生了变化的值:

<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)} />


但是,onAfterChange={this.handleHOTChange(changes, source)}会引发错误:

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


能否请别人告诉我如何从事件中获得“变化”?

如果我只使用不带参数的onAfterChange={this.handleHOTChange},则handleHOTchanges函数将在更改时被调用。但是,如何确定发生了什么变化?

最佳答案

嗯,解决了这个问题:

下面是解决方案:

<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)} />


关键是使用箭头函数语法:(changes, source) => this.handleHOTChange(changes, source)

下面是示例处理程序函数,用于打印在控制台中接收到的参数:

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

关于javascript - ReactJS-Handsontable-确定更改,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46356053/

10-10 05:20