很多使用我们就是直接项目里面用this.setState操作相应数据流,很多时候我并没有弄清其具体缘由,就是为什么这么用?

React官方文档中说明state是用于组件挂载时所需数据的默认值,State 可能会随着时间的推移而发生突变,但多数时候是作为用户事件行为的结果.

 constructor(props) {
        super(props)
        this.state = {
            count: 10,
        }
    }
 

//通过调用this.setState去更新this.state,不能直接操作this.state,我们就把它当成不可变的.调用setState更新this.state,它不是马上就会生效的,他是异步的。所以不要认为调用完setState后可以立马获取到最新的值,多个顺序执行的setState不是同步的一个接着一个的执行,会加入一个异步队列,然后最后一起执行,即批处理。
  timer = setInterval(() => {
            this.setState(() => ({
                count: --this.state.count,
            }), () => {
                if (this.state.count < 1) {
                    clearInterval(timer);
                    this.props.history.push("/main/home");
                }
            });
        }, 1000)

Banshee
124 声望4 粉丝

To die is to die, to live is to suffer