シナリオ: オートコンプリート
- HTML
input
要素の値は redux-state に転送されます。 - この redux-state は、トラッカーで注入されるクエリを定義します (以下に示すように)。
- クエリの結果は auto-complete-options として表示されます。
input
問題:値の変更時にコンポーネントがリロードされない
input
値が変更された場合、コンポーネントを再ロードするにはどうすればよいですか?
コードスニペット
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)
);