reactjs - 在 mapStateToProps 中未定义 Redux 状态找不到问题
问题描述
我无法找出我的错误。我在stackoverflow中尝试了很多答案,但这些对我不起作用。
这是我的减速器:IcmWebReducer.js
const initialState = {
invoices : [],
params: {
status: 'Pending',
_sort: 'documentInfo.dueDate',
_order: 'desc',
q: ''
}
};
const IcmWebReducer = (state = initialState, action) =>{
switch (action.type){
case 'UPDATE_INVOICES':
return Object.assign({}, state, {
invoices: action.invoices
});
case 'UPDATE_PARAMS':
return Object.assign({}, state, {
params: action.params
});
default:
return state;
}
};
export default IcmWebReducer;
这是我的App.js
import React, {Component} from 'react';
import './App.scss';
import Header from './components/header/Header'
import InvoiceAudit from "./components/invoice/InvoiceAudit";
class App extends Component {
render() {
return (
<div className="App container">
<Header/>
/* <InvoiceAudit store = {this.props.store}/> */
<InvoiceAudit/>
</div>
);
}
}
export default App;
这是index.js
import { Provider } from 'react-redux';
import { createStore } from 'redux';
import IcmWebReducer from "./reducers/IcmWebReducer";
let store = createStore(IcmWebReducer);
ReactDOM.render(
<Provider store={store}>
<App/>
</Provider>, document.getElementById('root'));
这是我使用 mapStateToProps 方法的类
const mapStateToProps = (state) => {
console.log(state);
return {
invoices: state.IcmWebReducer,
}
};
这显示我在 console.log 中未定义。但我找不到错误。我也在我的减速器中返回默认状态。谁能帮我
解决方案
在导出您的应用程序时,您应该使用connect
;
export default connect(mapStateToProps)(App)
这可能有助于解决您的问题;
const ConnectedApp = connect(mapStateToProps)(App);
在index.js
;
ReactDOM.render(< Provider store={store}>< ConnectedApp /></Provider>, document.getElementById('root'));
同样在您的 mapStateToProps 中,这就足够了
const mapStateToProps = (state) => {
console.log(state);
return {
invoices: state.invoices,
//status: state.params.status -> like this
}
我相信问题可能是您的发票状态正试图采用整个减速器初始状态,而不仅仅是发票空数组。
推荐阅读
- php - cURL 错误 35:连接到 oauth2.googleapis.com:443 的未知 SSL 协议错误
- python - 试图减去列表元素的百分比
- python - 在python中使用dill从文件夹加载多个文件?
- reactjs - Reactjs:在功能组件中实现危险的SetInnerHTML
- php - Twig 在页面上发布空模块
- laravel - Laravel 邮件发送给自己
- python - groupby 方法调用的区别?
- jquery - 工具栏中的下拉列表在 kendo MVC 中显示为文本框
- amazon-web-services - Amazon Data Lifecycle Manager:“没有附加 EBS 支持的卷”错误
- sql - SQL Server:从自定义表定义列表中进行列合并