当前位置: 首页 > 面试题库 >

如何在React钩子上使用`setState`回调

督劲
2023-03-14
问题内容

React钩子介绍了useState用于设置组件状态的方法。但是我如何使用钩子来代替如下代码的回调:

setState(
  { name: "Michael" },
  () => console.log(this.state)
);

我想在状态更新后做一些事情。

我知道我可以useEffect用来做其他事情,但是我必须检查状态以前的值,这需要一个位代码。我正在寻找可以与useState钩子一起使用的简单解决方案。


问题答案:

您需要使用useEffect钩子来实现此目的。

const [counter, setCounter] = useState(0);

const doSomething = () => {
  setCounter(123);
}

useEffect(() => {
   console.log('Do something after counter has changed', counter);
}, [counter]);


 类似资料:
  • React hooks引入了来设置组件状态。但是我如何使用钩子来替换回调,如下代码所示:

  • 在React的官方文件中提到- 如果您熟悉React类生命周期方法,那么可以将useEffect钩子看作componentDidMount、componentDidUpdate和componentWillUnmount的组合。 我的问题是--我们如何在钩子中使用生命周期方法?

  • 当react组件状态发生更改时,将调用render方法。因此,对于任何状态更改,都可以在呈现方法体中执行操作。那么setState回调是否有特定的用例?

  • 当类组件的输入道具相同时,可以使用PureComponent或ShouldComponentUpdate来避免呈现。现在,您可以通过将函数组件包装在react.memo中来对它们进行同样的处理。 所期望的: 我希望只有当模态可见时才呈现模态(由this.props.show管理) 对于类组件: 如何在功能组件中使用?在modal.jsx中? 相关代码: 功能组件modal.jsx(我不知道如何检查

  • 我试图在react with typescript中创建一个登录表单。但setEmail方法不接受该值。它表示“string”类型的参数不能分配给“SetStateAction”类型的参数。我该怎么解决它?

  • 我尝试了不同的方法。但是不要尝试切换这个css类。当我点击它时,书签应该会变成蓝色。到目前为止,我可以用onClick更改为false,但它不会切换回来。 这是ToggleBookmark组件集: