prevProps.search.query
ist immer das selbe wie this.props.search.query
nach dem Versenden einer Aktion zur Aktualisierung des Redux-Status.prevProps.search.query ist immer das selbe wie this.props.search.query
Wenn ich ‚Test‘ im Eingabe eingeben und melden Sie sich this.props.search.query
und prevProps.search.query
in componentDidUpdate()
sie werden beide print ‚Test‘
Sollte nicht prevProps.search.query
testin
sein (ohne h, wie es die vorherige Suchabfrage war)?
// results component
class Results extends React.Component {
constructor (props) {
super(props);
this.state = {
resultsClass: 'row search-results',
results: null,
searchQuery: ''
}
}
componentDidUpdate(prevProps, prevState){
if(this.props.search.query !== prevProps.search.query){
this.getSearchResults();
}
}
}
// input component
<input type="text" onChange={this.handleSearchUpdate} />
handleSearchUpdate() {
this.props.dispatch(setSearchQuery(this.queryInput.value));
}
In meiner Reduzierungen, ich bin die Einrichtung den Zustand
case constants.SET_SEARCH_QUERY:
return merge({}, set(state, 'search.query', action.query));
ComponentDidUpdate auch nextProps hat - https://facebook.github.io/react/docs/react-component.html#componentdidupdate – Stretch0
yeap, Du hast Recht, es funktioniert gut, auch wenn 'didUpdate' nur auf meine Eingabe getestet wurde. Ich denke, du zeigst besser die ganze Komponente, vielleicht ist das Problem im Renderbereich. – Lojka