首页 文章

如何在setState函数中使用回调函数

提问于
浏览
0

我有简单的点击处理程序,它适用于这种情况:

handleClick = () => {
            const { isCalendarOpen } = this.state;

            this.setState ({ isCalendarOpen: !isCalendarOpen });
        };

但我必须在setState中使用回调函数,所以我尝试这样:

this.setState(state => ({
           isCalenderOpen: !state.isCalenderOpen
       }));

这不是wirking :(有人可以建议如何解决问题吗?

1 回答

  • 2

    setState 中,第二个参数是回调函数,它将在设置状态后调用 . 第一个参数是要更新状态的对象或将返回更新状态的函数 . 在这两种情况下,您都在更新状态 . 它应该是

    this.setState ({ isCalendarOpen: !isCalendarOpen }, () => {
      // callback function
    });
    

    要么

    this.setState(state => ({
           isCalenderOpen: !state.isCalenderOpen
       }), () => {
      // callback function
    });
    

相关问题