首页 > 解决方案 > 我无法使用 Redux Hooks 从 Redux 更新状态

问题描述

所以我正在尝试学习如何使用useDispatch和useSelector,但我真的不知道我做错了什么。问题是,它没有用新的状态替换我的状态,而是将其删除。

索引.jsx


const store = createStore(reducer, composeEnhancers(applyMiddleware(thunk)));

ReactDOM.render(
  <Provider store={store}>
    <App />
  </Provider>,
  document.getElementById('root')
);

actionCreators.js

export const fetchGitHubTrendingTopics = () => {
  return dispatch => {
    return fetch('https://api.github.com/search/topics?q=javascript', {
      headers: {
        Accept: 'application/vnd.github.mercy-preview+json'
      }
    })
      .then(res => res.json())
      .then(json => {
        dispatch({
          type: 'FETCH_GITHUB_TOPICS',
          payload: json.items.slice(0, 5)
        });
      })
      .catch(err => err.message);
  };
};

actionTypes.js

export const FETCH_GITHUB_TOPICS = 'FETCH_GITHUB_TOPICS';

rootReducer.js

export const initialState = {
  topics: [],
  repos: [],
  battleRepos: []
};

export function reducer(state = initialState, { type, payload }) {
  switch (type) {
    case FETCH_GITHUB_TOPICS:
      return { ...state, topics: payload };
    default:
      return state;
  }
}

初始:在此处输入图像描述 按下按钮后:在此处输入图像描述

如果我以旧方式进行操作,它会对其进行更新并且可以正常工作。我究竟做错了什么 ?

标签: javascriptreactjsredux

解决方案


推荐阅读