我正在尝试删除<Table>
数据。我正在做的是,选择<Table>
的单行,然后按Delete
按钮(自定义)。并且正在触发删除功能。
数据正在服务器端删除,但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)
它不会刷新,因为您在构造函数中指定了date
- date
始终具有初始值。构造函数在开头只调用一次,因此this.data
将始终具有初始值this.props.data
。组件没有刷新,因为什么都没有真正改变。
试试这个:
this.props.dispatch(deleteUser(this.props.data));
答案 1 :(得分:0)
尝试在this.data
内分配componentWillReceiveProps
,正如其他人所提到的那样 - 构造函数只在组件的生命周期中调用一次。