setState是浅合并
export default class Test extends Component{
state = {
user:{
name:"aaa",
age:18
}
}
componentDidMount(){
//这样设置user时,age状态会丢失
this.setState({
user:{
name:"bbb"
}
})
//应该使用如下方式设置
this.setState((prevState)=>({
user:{
...prevState.user,
name:"bbb"
}
}))
}
}
关于react组件无法获取history属性的问题
withRouter高阶组件,提供了history让你使用
import React from "react";
import {withRouter} from "react-router-dom";
class MyComponent extends React.Component {
...
myFunction() {
this.props.history.push("/some/Path");
}
...
}
export default withRouter(MyComponent);
网友评论