我试图更新通过axios调用发送数据的mongodb记录。以某种方式传递给调用的值保留了初始化状态下的旧值。任何帮助将不胜感激。
class AccountOverview extends Component {
constructor() {
super();
this.state = { data: [] };
}
async componentDidMount() {
try {
const userid = this.props.state.auth._id
const request = await axios.get('/api/user/' + userid)
const userdata = await request.data
...
let data =
{
fullname: userdata.name,
username: userdata.username,
....
}
return this.setState({ data })
} catch (error) {
return null;
}
}
async saveAccount (values)
{
const putAccount =
await axios.put('/api/utils/updateaccount/:userid' + values.userid, values)
console.log(values) // show values send
}
render() {
return (
<div>
<form onSubmit={this.props.handleSubmit(this.saveAccount)}>
.....
<div className="row">
<div className="col-sm">
<PersonalInfo
initialValues={this.state.data}
/>
.....
);
}
}
function mapStateToProps(state) {
return {
state
}
}
export default reduxForm({
form: "AccountOverview",
enableReinitialize: true
})(connect(mapStateToProps)(AccountOverview))
即使通过编辑字段更改实际值,console.log(values)仍会发送相同的值。