2017-03-27 2 views
1

React Bootstrap table을 사용하고 있습니다. 나는 목록에서 항목을 추가 할 때, 내가 그런 식으로 데이터를 저장하기 위해 local storage를 사용React : 데이터 편집 및 로컬 저장소에 저장

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

이 답변 주셔서 감사합니다 :

관련 문제