2017-03-27 15 views
1

私はReact Bootstrap tableを使用しています。私は、リスト内の項目を追加すると、私はそのようなデータを保存するためにlocal storageを使用します。Re:データを編集してローカルストレージに保存します

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

ので、最初に私はエラーがあります:

this is undefined.

次に、私はそれがうまくいかない解決策であるかどうかわかりません。 こんにちは、ありがとう。

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

概念は、ときに動作します

私はこれを修正

cellEdit={this.cellEdit.bind(this)} 

答えて

0

理由はあなたが、これを使用cellEditイベントbindに忘れてしまった、あります私はデータを編集し、ローカルストレージが変更されます。しかし、私の状態は空ですので、正常です:

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

しかし、私はデータを編集する方法を知りません。アイデアはありますか? ありがとうございました

0

は、あなたの答えをありがとう:

関連する問題