Javascript prevProps.search.query始终与this.props.search.query相同
Javascript prevProps.search.query始终与this.props.search.query相同,javascript,reactjs,redux,Javascript,Reactjs,Redux,prevProps.search.query在分派更新redux状态的操作后始终与this.props.search.query相同 如果我在输入中键入“testing”,并在componentDidUpdate()中记录this.props.search.query和prevProps.search.query,它们都将打印“testing” 不应该prevProps.search.query是testin(没有h,因为它是prev search查询) 我想你把它误认为是组件WillRecei
prevProps.search.query
在分派更新redux状态的操作后始终与this.props.search.query
相同
如果我在输入中键入“testing”,并在componentDidUpdate()
中记录this.props.search.query
和prevProps.search.query
,它们都将打印“testing”
不应该prevProps.search.query
是testin
(没有h,因为它是prev search查询)
我想你把它误认为是组件WillReceiveProps。 如果需要
nextrops
在这里了解更多信息我想你把它误认为是组件WillReceiveProps。 如果需要
nextrops
在这里了解更多ComponentDidUpdate也有下一步-是的,你是对的,它应该可以很好地工作,即使使用刚刚在我的输入上测试过的
didUpdate
。我认为你们最好展示整个组件,也许问题出在渲染部分。ComponentDidUpdate也有下一步-是的,你们是对的,它应该可以很好地工作,即使在我的输入上测试了didUpdate
。我认为你们最好展示整个组件,也许问题出在渲染部分。
// 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));
}
case constants.SET_SEARCH_QUERY:
return merge({}, set(state, 'search.query', action.query));