当组件 props 改变时获取新数据

IT技术 reactjs
2021-05-09 10:28:37

我有 4 个按钮,单击按钮后会调用一个组件,根据单击的按钮显示不同的数据。

当我第一次单击按钮时,该组件的构造函数和componentWillMount()函数被调用,但在那之后,直到我刷新页面或导航到不同的页面并返回时才调用它。

那么,有没有办法在componentWillMount()每次调用特定组件时调用该组件的函数或构造函数?

我没有附上代码,因为这个问题很简单。

2个回答

看起来您正在为组件提供不同的props,因此您需要componentWillReceivePropscomponentDidMount

根据文档

componentWillReceiveProps(nextProps)

componentWillReceiveProps()在安装的组件接收新的 props 之前调用。如果您需要在响应更新状态托变化(例如,复位),你可以比较this.propsnextProps和执行使用状态转换this.setState() 在此方法。

组件DidMount()

componentDidMount()在安装组件后立即调用。需要 DOM 节点的初始化应该在这里进行。如果您需要从远程端点加载数据,这是实例化网络请求的好地方。

所以你需要更新检查你的 props 在子组件中是否发生了变化,componentWillReceiveProps并根据它采取行动。由于componentWillReceiveProps在第一次安装组件时不会被调用,因此您也需要使用componentDidMount它,因为它仅在第一次渲染时被调用

不,因为文档指出该组件在页面生命周期中仅安装一次。

我认为您可能需要 componentWillUpdate 事件。确保 shouldComponentUpdate 方法在需要时返回 true。