javascript - 我无法使用 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;
}
}
如果我以旧方式进行操作,它会对其进行更新并且可以正常工作。我究竟做错了什么 ?
解决方案
推荐阅读
- javascript - 如何使用 webpack 4 加载和提取字体?
- r - 如何从 R 中的正态分布生成错误
- javascript - CSS 背景:带有角度插值的 url()
- r - 闪亮的应用程序:单击操作按钮时没有任何变化
- html - 使页脚粘在页面底部的清洁方法?
- scala - 为什么 sbt 不运行 ScalaTest 的示例测试?
- java - 为什么在 Kotlin 类中实现 Cloneable 接口会导致“错误:此处不需要接口”?
- javascript - 我在运行 Mocha 测试时遇到问题。如何解决这个问题?
- ios - 在 SwiftUI 中切换视图后,Firebase 图像为空
- javascript - 如何在 React 中制作一个简单的循环滑块?