javascript - React/Redux 无法保留搜索输入的先前状态

标签 javascript reactjs redux

我正在尝试将最近的搜索保存在本地存储中。

Reducer.js

const initialState = {
  venues: [],
  searches: [],
};

const venueReducer = (state = initialState, action) => {
  switch (action.type) {
    case RECENT_SEARCHES:
      return {
        ...state,
        searches: [
          ...state,
          { near: action.payload.location, query: action.payload.place },
        ],
      };
  }
};

Action.js

export const fetchVenues = (place, location) => dispatch => {
  dispatch({ type: FETCH_VENUE_REQUESTED })
  dispatch({ type: RECENT_SEARCHES, payload: { place, location } })
};

现在我正在获取用户输入并将其保存到reducer中的搜索数组中,但它没有保留之前的状态。仅显示当前用户输入。

最佳答案

当您分散搜索时,您需要执行以下操作:

[ ...state.searches,

而不仅仅是:

[ ...state,

因为这会将 state.venues (Array)state.searches (Array) 放入您的 state.searches

关于javascript - React/Redux 无法保留搜索输入的先前状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49991787/

相关文章:

javascript - 谷歌地图纬度/经度在几何中显示为空 - Javascript

javascript - 使用 Javascript 从 IE、Chorome 和 Firefox 启动 .exe 文件

javascript - 在 ReactJS 中使用反向数据流进行子级与父级通信的好方法是什么?

javascript - 如何将 React.DOM 元素转换为 JSX?

javascript - PWA 是否与浏览器共享 web-push 订阅?

javascript - Webapi Controller 参数为空

javascript - Highchart-OnClick事件,从堆叠条形图中获取 "category"和 "name"

javascript - 为什么我的 "mapDispatchToProps"找不到我的 Action 函数?

javascript - React hooks、函数组件和 Redux

javascript - Nivo Slider 无法正常工作