Ich habe 2 KomponentenAnruf componentWillReceiveProps() nach Zustand wird von Minderer immer aktualisiert Reagieren/Redux
1] Eltern
2] Kind
Ich bin vorbei Mutter Komponenten Aktion Kind zu bekommen auf Änderung genannt der Dropdown-Liste.
Die Methode der übergeordneten Komponenten ruft die Funktion des Speichers (AJAX-Aufruf) auf und aktualisiert die Statusvariable. Nach dem Update-Zustand möchte ich einige Operationen in componentWillReceiveProps() ausführen, aber es geht nicht in componentWillReceiveProps().
Im Folgenden finden Sie Code in Stammkomponente -
1] Eltern
componentWillReceiveProps(props) {
this._setTrackToParams(props)
debugger;
let liveVideoList = this.state.liveVideoList
if(props.liveRaceVideos != null && _.isEmpty(this.state.liveVideoList)) {
console.log('live race video if')
this.state.liveVideoList.push(props.liveRaceVideos)
this.setState(this.state)
} else if(props.liveRaceVideos != null && this.selectedKey) {
console.log('live race video else')
this.state.liveVideoList[this.selectedKey] = props.liveRaceVideos
this.setState(this.state)
}
console.log("bye")
}
renderChild() {
let selectValue = !this.selectedKey ? this.props.params.trackCode : this.selectedKey
if(this.state.liveVideoList) {
return _.map(this.state.liveVideoList,(value , key) => {
if(key < 3) {
return (
<LiveVideoPanel ref = "liveVideoPanel" key = {key} currentTracks = {this.props.currentTracks} liveVideos = {value} selectedValue = {selectValue} onChange = {this._toggleVideos} onChangeTrackList = {this.onChangeTrackList.bind(this)} videoCount = {key}/>
)
}
})
}
}
onChangeTrackList(id, key) {
if(id) {
this.selectKey = key
this.props.fetchLiveRaceVideo(id)
}
}
Also ich rufe this.onChangeTrackList() Funktion auf Änderung der Dropdown-Liste. und diese Funktion intern aufrufen this.props.fetchLiveRaceVideo (ID) Aktion. Ich bekomme "Link" von diesem Ajax-Anruf. und dieser Link wird im Status aktualisiert.
Nach Zustand Aktualisierung möchte ich componentWillReceiveProps() aufrufen, aber dies wird nicht aufgerufen.
Haben Sie überprüft, dass Ihre Aktion 'this.props.fetchLiveRaceVideo' aufgerufen wird? Haben Sie überprüft, dass der von Ihnen erwartete Aktionstyp von dieser Aktion ausgelöst wird? Haben Sie außerdem überprüft, welcher Status vom Reduzierer zurückgegeben wird, der den abgefragten Aktionstyp verarbeitet? – Fizz