反应setState不起作用,也不回调

时间:2018-09-20 06:09:45

标签: javascript reactjs react-native

当我在代码中调用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()中仍然可以正常工作

1 个答案:

答案 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)
  }

看看是否有帮助。