场景:自动完成
- HTML
input
元素的值被转移到 redux 状态。 - 这个 redux-state 定义了一个使用 tracker 注入的查询(如下图所示)。
- 查询结果显示为自动完成选项。
问题:组件不会在input
-value 更改时重新加载
input
当-value 更改时,如何重新加载组件?
代码片段
const AutoComplete = (props) => {
let handleChange = (event) => {
props.setSearchQuery(event.target.value);
};
return (
<div>
<input
type="text"
onChange={(event) => handleChange(event)}
/>
</div>
);
};
export default connect(
(state) => ({
searchQuery: selectors.getSearchQuery(state)
}),
(dispatch) => ({
setSearchQuery: (queryString) => dispatch(actions.setSearchQuery(queryString))
})
)(
composeWithTracker(
(props, onDate) => {
const searchResults = props.searchFunction(props.searchQuery);
onDate(null, {searchResults});
}
)(AutoComplete)
);