从我的项目中删除所有组件WillMount,如果我的子组件依赖于api响应,则替换什么



希望不是 xy 问题,react 弃用了一些生命周期方法,我们使用组件将挂载在我们的父组件之一中进行 api 调用,因为子内容取决于从此 api 调用返回的内容。

当时我们不能使用 componentDidMount 进行调用,因为子组件生命周期方法在父组件的 componentDidMount 之前触发。

如果使用条件呈现仅在 API 响应返回并更新状态后呈现子组件,则将 API 调用放入componentDidMount中将起作用。像这样:

render() {
return (
<div>
parent component stuff
{ this.state.apiResults ? <Child apiResults={this.state.apiResults} /> : null }
</div>
);
}

其中,fetch结果更新apiResults状态。

您有三个选择:

  • componentWillMount切换到UNSAFE_componentWillMount。这是一个短期修复,在 React 17 中不起作用,因此不建议使用。
  • 如果组件是类组件,请将 API 代码移动到组件的构造函数。
  • 将您的组件转换为功能组件并将其移动到useEffect内。建议这样做:
useEffect(() => {
// API code
}, []);

相关内容

  • 没有找到相关文章

最新更新