组件的state和setState中setState方法传递函数作为参数的问题


  • 0

    setState 接受函数参数的时候,state对象也没有更新啊,下面是我的代码:

    class LikeButton extends Component {
    constructor () {
    super()
    this.state = { isLiked: false }
    }

    handleClickOnLikeButton () {
    this.setState((prevState) => {
    return { count: 0 }
    });
    this.setState((prevState) => {
    return { count: prevState.count + 1 } // 上一个 setState 的返回是 count 为 0,当前返回 1
    });
    this.setState((prevState) => {
    return { count: prevState.count + 2 } // 上一个 setState 的返回是 count 为 1,当前返回 3
    });

    console.log(this.state.count);
    }

    render () {
    return (
    <button onClick={this.handleClickOnLikeButton.bind(this)}>
    {this.state.isLiked ? '取消' : '点赞'} 👍
    </button>
    )
    }
    }

    ReactDOM.render(
    <LikeButton />,
    document.getElementById('example4')
    );

    点击浏览器中的“点赞”,第一次控制台打出来的仍然是undefined,这是为什么啊?如何解决


  • 0
    administrators

    可以先把代码用 markown 语法包裹起来


登录后回复
 

与 ScriptOJ 的连接断开,我们正在尝试重连,请耐心等待