AutoComplete ReactJS / Redux 不改变搜索值
创始人
2024-09-22 19:30:56
0

在ReactJS / Redux中实现AutoComplete,并且不改变搜索值,可以使用以下解决方法:

首先,创建一个Redux store来存储搜索相关的数据。可以使用redux-thunk中间件来处理异步操作。

在Redux store中,创建以下reducer来处理搜索相关的操作:

// actionTypes.js
export const SET_SEARCH_TERM = 'SET_SEARCH_TERM';
export const SET_SEARCH_RESULTS = 'SET_SEARCH_RESULTS';

// actions.js
import { SET_SEARCH_TERM, SET_SEARCH_RESULTS } from './actionTypes';

export const setSearchTerm = searchTerm => ({
  type: SET_SEARCH_TERM,
  payload: searchTerm
});

export const setSearchResults = results => ({
  type: SET_SEARCH_RESULTS,
  payload: results
});

// reducer.js
import { SET_SEARCH_TERM, SET_SEARCH_RESULTS } from './actionTypes';

const initialState = {
  searchTerm: '',
  searchResults: []
};

const reducer = (state = initialState, action) => {
  switch (action.type) {
    case SET_SEARCH_TERM:
      return {
        ...state,
        searchTerm: action.payload
      };
    case SET_SEARCH_RESULTS:
      return {
        ...state,
        searchResults: action.payload
      };
    default:
      return state;
  }
};

export default reducer;

然后,在React组件中,使用redux-thunk来调用异步操作,并将搜索结果存储到Redux store中:

import React, { useEffect } from 'react';
import { useDispatch, useSelector } from 'react-redux';
import { setSearchTerm, setSearchResults } from './actions';

const AutoComplete = () => {
  const dispatch = useDispatch();
  const searchTerm = useSelector(state => state.searchTerm);
  const searchResults = useSelector(state => state.searchResults);

  const handleSearch = async () => {
    // 进行搜索操作,将结果存储到searchResults中
    const results = await fetchSearchResults(searchTerm);
    dispatch(setSearchResults(results));
  };

  useEffect(() => {
    handleSearch();
  }, [searchTerm]);

  const handleChange = e => {
    dispatch(setSearchTerm(e.target.value));
  };

  return (
    
    {searchResults.map(result => (
  • {result.name}
  • ))}
); }; export default AutoComplete;

在上述代码中,AutoComplete组件中的输入框的值由Redux store中的searchTerm来控制,并且每当searchTerm改变时,会触发handleSearch函数来调用异步操作并更新搜索结果。

这样,无论是用户输入还是调用异步操作,都不会直接改变搜索值,而是通过Redux store来管理和更新搜索值。

相关内容

热门资讯

两分钟实锤!德州之星辅助(智星... 两分钟实锤!德州之星辅助(智星德州)都是有挂(详细辅助曝光教程)1、操作简单,无需注册,只需要使用手...
十分钟实锤!德州ai人工智能(... 十分钟实锤!德州ai人工智能(德州wpk)真是有挂(详细辅助插件教程);1、上手简单,内置详细流程视...
第5分钟实锤!德州免费辅助神器... 第5分钟实锤!德州免费辅助神器app(德州扑克)竟然是有挂(详细辅助扑克教程)1、全新机制【德州免费...
4分钟实锤!德州AI智能辅助机... 4分钟实锤!德州AI智能辅助机器人(德州扑克)一直是有挂(详细辅助2025新版总结)亲,关键说明,德...
第8分钟实锤!德州ai辅助软件... 第8分钟实锤!德州ai辅助软件(德州nzt)切实真的是有挂(详细辅助技巧教程)1、进入到德州ai辅助...
第3分钟实锤!德扑起手牌胜率图... 第3分钟实锤!德扑起手牌胜率图(德州俱乐部)都是有挂(详细辅助力荐教程)1、进入到德扑起手牌胜率图黑...
第八分钟实锤!智星德州菠萝有挂... 第八分钟实锤!智星德州菠萝有挂吗(德州机器人)一贯存在有挂(详细辅助扑克教程)1、该软件可以轻松地帮...
第2分钟实锤!德州ai辅助有用... 第2分钟实锤!德州ai辅助有用(德州机器人)一直存在有挂(详细辅助透牌教程)1)德州ai辅助有用辅助...
3分钟实锤!德州ai人工智能(... 3分钟实锤!德州ai人工智能(线上德州)一贯真的有挂(详细辅助揭秘教程)1、德州ai人工智能系统规律...
四分钟实锤!智星德州菠萝(德州... 四分钟实锤!智星德州菠萝(德州)确实有挂(详细辅助技巧教程)1、上手简单,内置详细流程视频教学,新手...