让我展示我的意思:
class Example extends Component {
constructor(props){
super(props);
this.state = {
prop: 0
}
}
prop = 0;
changeProp = () => {
this.setState({
prop: 5
});
this.prop = 5
}
state.prop和prop都可以使用,两者都可以更改,所以它们之间的主要区别是什么?
答案 0 :(得分:2)
从技术上说,可以通过直接写入this.state
来更改状态,但不会导致Component
重新呈现,并且通常会导致状态不一致。
此外,要记住的是setState
是异步的。 allows
使我们可以在单个作用域中多次调用setState
,而不会触发整个树的重新渲染。
答案 1 :(得分:-1)
可以通过this.setState
修改状态,这将触发重新渲染。但是您不应该,也不能在组件中修改this.props
。
状态用于组件内,只有组件本身与它的值有关。但是,道具是从其父级接收的,该组件只能从其读取并进行渲染。