我曾经使用this.state =来初始化componentWillReceiveProps中的状态 顺便说一句,它在React16.x中已被弃用 建议使用this.setState而不是this.state =。 但是我必须在componentWillReceiveProps中初始化状态,因为如果我使用this.setState函数,一些旧状态仍然存在。 你有什么主意吗? 请建议我。 感谢
答案 0 :(得分:2)
问题是您正在其中一个生命周期方法中初始化状态 - 您只想在构造函数中执行此操作。
通常,您在构造函数中初始化状态,或使用setInitialState
constructor() {
this.state = { foo: 'bar' }
}
componentWillReceiveProps() {
this.setState({ foo: 'baz' })
}
从那里,您可以在生命周期方法中调用setState
。
对于初始化状态,您可以在构造函数中使用this.state = {}
,并更新状态调用this.setState()
。
另外,你提到了这个......
顺便提一下,它已在React16.x中弃用了。建议使用this.setState而不是this.state =
你能指点我在文档中看到的地方吗?根据{{3}},在反应生命周期方法的上下文中,setState的行为方式有一些变化,但我还没有找到任何可以验证您的声明的内容
答案 1 :(得分:0)
每当你在reactjs中定义任何方法时,都要这样做:
increment: function(){
this.setState({
count: this.state.count + 1
})
}
//我在这里为先前的计数状态添加了一些内容。