首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从我的项目中删除所有的componentWillMount,如果我的子组件依赖于api响应,那么替换是什么?

问从我的项目中删除所有的componentWillMount,如果我的子组件依赖于api响应,那么替换是什么?
EN

Stack Overflow用户
提问于 2020-11-28 18:17:07
回答 2查看 109关注 0票数 0

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

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

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-11-28 18:21:23

如果您使用条件呈现只在API响应返回并更新状态后呈现子组件,则将API调用放入componentDidMount中即可。类似于:

代码语言:javascript
复制
render() {
  return (
    <div>
      parent component stuff
      { this.state.apiResults ? <Child apiResults={this.state.apiResults} /> : null }
    </div>
  );
}

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

票数 2
EN

Stack Overflow用户

发布于 2020-11-28 18:22:49

你有三个选择:

  • 将componentWillMount转换为UNSAFE_componentWillMount。这是一个短期的修复,不能从React 17开始工作,所以如果它是一个类-- recommended.
  • Move component.
  • Convert组件到一个功能组件并将它移动到useEffect中--就不会将您的API代码转换为组件的构造函数。推荐这样做:

代码语言:javascript
复制
useEffect(() => {
  // API code
}, []);
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65053004

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档