1

我正在使用React Bootstrap table. 当我在列表中添加一个项目时,我使用local storage来保存这样的数据:

componentDidUpdate() {       
        localStorage.setItem('items', JSON.stringify(this.state.items))                
}

现在,我想用 cellEdit 编辑引导表单元格上的数据:

<BootstrapTable data={this.props.items} cellEdit={this.cellEdit}>
       <TableHeaderColumn isKey='true' dataField='id'>Id</TableHeaderColumn>
       <TableHeaderColumn  dataField='content' dataSort={true} >Titre</TableHeaderColumn>
       <TableHeaderColumn  dataField='reference'>Réference</TableHeaderColumn>     
       <TableHeaderColumn dataField='docLibelle' >Libellé du document </TableHeaderColumn>  
       <TableHeaderColumn dataField='filePath' dataFormat={this.linkFormatter} >Url du document </TableHeaderColumn>                         
 </BootstrapTable>   

 cellEdit = {
    mode: 'click', // click cell to edit
    afterSaveCell: this.afterSaveCell
};

afterSaveCell(row, cellName, cellValue, newText) { 
    localStorage.setItem("items", JSON.stringify(this.state.itemsUpdate));
}  

所以,首先我有一个错误:

这是未定义的。

然后,我不知道这是否是解决方案,因为它不起作用。在这方面帮助我,谢谢。

4

2 回答 2

0

谢谢您的回答

我修改这个:

cellEdit = {
    mode: 'click', // click cell to edit
    afterSaveCell: this.afterSaveCell.bind(this)
};

这个概念有效,当我编辑数据时,本地存储会发生变化。但是我的状态是空的,这很正常,因为:

public constructor(props: Props) {
    super(props)
    this.state = {           
        itemsUpdate: []           
    }
}

但是,我不知道如何编辑数据。你有想法吗?谢谢

于 2017-03-28T07:05:59.623 回答
0

原因是,你忘记bindcellEdit事件,使用这个:

cellEdit={this.cellEdit.bind(this)}
于 2017-03-27T15:15:42.993 回答