【发布时间】:2021-08-21 19:35:34
【问题描述】:
假设我们有一个买家 ID 输入,并且我们希望在每次买家 ID 更改时获取买家详细信息。 类组件的以下代码如下所示
componentDidUpdate(prevProps,prevState) {
if (this.state.buyerId !== prevState.buyerId) {
this.props.fetchBuyerData(this.state.buyerId); // some random API to search for details of buyer
}
}
但是,如果我们想在功能组件中使用 useEffect 钩子,我们将如何控制它。我们如何将以前的道具与新道具进行比较。
如果按照我的理解写的话,会有点像这样。
useEffect(() => {
props.fetchBuyerData(state.buyerId);
}, [state.buyerId]);
但是 react 的 hooks linter 建议我也需要将 props 包含到依赖数组中,如果我在依赖数组中包含 props,一旦 props 发生更改,根据要求不正确,就会调用 useEffect。 如果它的唯一目的是进行 API 调用,有人可以帮助我理解为什么依赖数组中需要 props。 还有什么方法可以控制之前的状态或道具进行深度比较,或者只是控制 useEffect 中的函数执行。
【问题讨论】:
-
您对
this关键字的使用不正确。你如何使用useState?
标签: javascript reactjs react-hooks