我是redux的新手。我想在react上实现redux。我已经创建了待办事项列表,它与redux配合得很好。作为一种实践,我创建了一个名为Calculate的新组件,用于增加和减少待办事项列表下的数字。我有两个减速器。我在index.js中组合了两个减速器。但据我所知,组合不起作用。我面临着这样的错误;类型错误:this.props.messages.map不是函数"。但是,当没有组合减速器,并且只发送messaageReducer到存储时,我的应用程序运行良好。这是我的密码。
import React from 'react';
import ReactDOM from 'react-dom';
import './index.css';
import App from './App';
import messageReducer from "./reducers/reducers"
import {Provider} from "react-redux"
import {combineReducers, createStore} from "redux"
import Calculate from "./calculate"
import counter from "./reducers/reducers2"
const rootReducer = combineReducers({
counter,
messageReducer,
})
const store = createStore(rootReducer)
ReactDOM.render(
<Provider store={store}>
<App />
<Calculate/>
</Provider>,
document.getElementById('root')
);
combineReducers
会更改商店的形状。
以前是state.X
,现在是state.messageReducer.X
。
这也是为什么messageReducer
在这里是个坏名字。进行
const rootReducer = combineReducers({
counter,
message: messageReducer,
})
而是变成CCD_ 5。
此外,请注意,如果你手工完成所有这些,你可能正在学习一种老式的Redux,并且可能遵循过时的文档。虽然这很好地展示了Redux内部的功能,但在现代Redux中,你不应该手动完成所有这些。请遵循官方的Redux教程,网址为https://redux.js.org/tutorials/essentials/part-1-overview-concepts