当我删除子组件中的项目时,我是否尝试重新获取父组件的componentDidMount生命周期?但似乎一旦在父路由的初始渲染时调用它,使用this.context.router.push将其路由回来不会再触发父路由中的componentDidMount。有人建议绕过这个吗?非常感谢。
export class Parent extends React.Component {
componentDidMount () {
this.props.fetchData(
// update state
)
}
render () {
// render with updated data
}
}
export class Child extends React.Component {
constructor (props) {
super(props)
this.deleteItem = this.deleteItem.bind(this)
}
componentDidMount () {
this.props.fetchData(
// update state
)
}
deleteItem () {
this.props.deleteItem(id, (res) => {
this.context.router.push('/parentroute')
})
}
render () {
}
}
答案 0 :(得分:3)
componentDidMount
仅在组件安装后调用一次。
如果要多次调用父组件方法,可以在父组件中使用componentWillReceiveProps
。
或者你可以使用子componentDidMount
和componentWillUnmount
钩子,但最好在父母中处理它。