我有 4 个按钮,单击按钮后会调用一个组件,根据单击的按钮显示不同的数据。
当我第一次单击按钮时,该组件的构造函数和componentWillMount()
函数被调用,但在那之后,直到我刷新页面或导航到不同的页面并返回时才调用它。
那么,有没有办法在componentWillMount()
每次调用特定组件时调用该组件的函数或构造函数?
我没有附上代码,因为这个问题很简单。
我有 4 个按钮,单击按钮后会调用一个组件,根据单击的按钮显示不同的数据。
当我第一次单击按钮时,该组件的构造函数和componentWillMount()
函数被调用,但在那之后,直到我刷新页面或导航到不同的页面并返回时才调用它。
那么,有没有办法在componentWillMount()
每次调用特定组件时调用该组件的函数或构造函数?
我没有附上代码,因为这个问题很简单。
看起来您正在为组件提供不同的props,因此您需要componentWillReceiveProps
与componentDidMount
根据文档
componentWillReceiveProps(nextProps)
componentWillReceiveProps()
在安装的组件接收新的 props 之前调用。如果您需要在响应更新状态托变化(例如,复位),你可以比较this.props
和nextProps
和执行使用状态转换this.setState()
在此方法。组件DidMount()
componentDidMount()
在安装组件后立即调用。需要 DOM 节点的初始化应该在这里进行。如果您需要从远程端点加载数据,这是实例化网络请求的好地方。
所以你需要更新检查你的 props 在子组件中是否发生了变化,componentWillReceiveProps
并根据它采取行动。由于componentWillReceiveProps
在第一次安装组件时不会被调用,因此您也需要使用componentDidMount
它,因为它仅在第一次渲染时被调用
不,因为文档指出该组件在页面生命周期中仅安装一次。
我认为您可能需要 componentWillUpdate 事件。确保 shouldComponentUpdate 方法在需要时返回 true。