2016-12-05 89 views
0

我試圖刪除一個<Table>數據。我正在做的是,選擇<Table>的單行並按下Delete按鈕(自定義)。並且正在觸發刪除功能。assembliesnetDidUpdate()沒有被調用

數據在服務器端被刪除,但UI未更新。 這裏是代碼:

export default class DeleteUserForms extends Component{ 

constructor(props) { 
    super(props); 
    this.state = {value: 1}; 
    this.data = this.props.selectedValue; 
    this.handleDeletedata=this.handleDeletedata.bind(this); 
} 

handleDeletedata(event){ 
    event.preventDefault(); 
    console.log('Data before delete function call'); 
    console.log(this.data); 
    this.props.dispatch(deleteUser(this.data)); 
    // this.props.close(event) 
} 

componentWillUpdate(){ 
    console.log('COMPONENT WILL UPDATEEEEEEEEEEEEEEEEE'); 
    this.props.dispatch(getUserRole()) 
} 

// componentDidMount(){ 
//  console.log('COMPONENT DID MOUNT'); 
//  // this.props.close(); 
// } 

componentDidUpdate(){ 
    console.log('COMPONENT DID UPDATEEEEEEEEEEEEEEEEEEEEE'); 
    // this.props.close(); 
} 


render(){ 
    return(
     <form onSubmit={this.handleDeletedata}> 
      <MuiThemeProvider muiTheme={muiThemedrpdown}> 
       <div> 
        Do you really want to delete the record for {this.props.selectedValue.name}? 
       </div> 
      </MuiThemeProvider> 
      <MuiThemeProvider muiTheme={muiThemebtn}> 
       <div> 
        <RaisedButton label="Yes" primary={true} type="submit" className="btndiv" 
        /> 
        <RaisedButton label="No" primary={true} 
        onClick={this.props.close} className="btndiv" /> 
       </div> 
      </MuiThemeProvider> 
     </form> 
    ); 

}}

這裏也是我想要的數據已被刪除後,關閉模式。但componentDidUpdate()方法未被調用。 請建議

+0

你有什麼錯誤嗎? –

+0

控制檯沒有錯誤 – NDeveloper

+0

你可以發佈'deleteUser(this.data)'觸發的reducer代碼嗎? –

回答

0

它不刷新,因爲您在構造函數中指定date - date始終爲初始值。構造函數在開始時只被調用一次,所以this.data將始終有一個初始值this.props.data。組件並不令人耳目一新,因爲沒有真正改變。

試試這個:

this.props.dispatch(deleteUser(this.props.data)); 
0

嘗試內componentWillReceiveProps分配this.data代替,如其他人所說 - 構造函數僅在組件的生命週期調用一次。