2017-01-31 4 views
1

I in componentDidMount Lebenszyklus einer übergeordnete Komponente neu zu holen versuchen, wenn sie in einer untergeordneten Komponente ein Element gelöscht wird? Es scheint jedoch nicht so, dass es beim ersten Rendern der Parent-Route aufgerufen wird, wenn das Routing mit this.context.router.push componentDidMount in der Parent-Route nicht mehr zurückleitet. Hat jemand einen Vorschlag, um das zu umgehen? sehr geschätzt.Aufruf componentDidMount, wenn sie von einer untergeordneten Komponente geroutet

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() { 
    } 
} 

Antwort

2

componentDidMount wird nur einmal und nachdem die Komponente montiert genannt.

Wenn Sie eine übergeordnete Komponente Methode mehrmals aufrufen möchten, können Sie Sie verwenden componentWillReceiveProps in der übergeordneten Komponente.

Alternativ könnten Sie die Kinder componentDidMount und Haken verwenden, aber wahrscheinlich am besten, damit im Elternteil umzugehen.

+0

Danke. componentWillRecieveProps löst es. – jhlosin

Verwandte Themen