当我在代码中调用this.setState时,它似乎什么也没做
this.setState({array:pre.array},()=>{console.log("setState")})
我什至看不到回调函数的日志,这是我的代码
class Watch extends React.Component{
constructor(pre) {
super(pre);
this.state = { color: "green" }
this.setState(() => {
return {array:newarray}
}, console.log("setState works"))
p.s:我尝试将setState
放在onClick
函数中,在componentDidMount(),componentDidUpdate()
中仍然可以正常工作
答案 0 :(得分:1)
似乎在使用setState回调系统时,第一个参数(更新程序)也必须采用函数形式。因此,您可以尝试以下操作:
onEditText=(value)=>{
this.setState((state, props)=>{
return {text: value}
}, this.onTextEdited);
}
onTextEdited=()=>{
//this will be printed with the updated value
console.log('onTextEdited', this.state.text)
}
看看是否有帮助。