【问题标题】:Could not find "store" in either the context or props of "Connect(DataTableContainer)"在“Connect(DataTableContainer)”的上下文或道具中找不到“商店”
【发布时间】:2019-09-28 19:14:51
【问题描述】:

我正在使用 react-redux-datatable 插件来创建表。

react-redux-datatable 用法:https://sean-ww.github.io/react-redux-datatable/get-started/get-started.html 我已按照上述文档中给出的步骤进行操作。

但我无法解决此错误。我已将商店包含在 Provider Container 中,但我仍然遇到了问题。

我收到错误, 在“Connect(DataTableContainer)”的上下文或道具中找不到“store”。要么将根组件包装在 Provider 中,要么将“store”作为 prop 显式传递给“Connect(DataTableContainer)”。

我已经包含了两个文件 index.js 和 App.js

index.js

import React from 'react';
import ReactDOM from 'react-dom';
import { applyMiddleware, createStore, combineReducers } from 'redux';
import { Provider } from 'react-redux';
import logger from 'redux-logger'

import './index.css';
import App from './App';
import * as serviceWorker from './serviceWorker';
import supplierReducer from './store/supplierreducer';
import { DataTableReducer } from 'react-redux-datatable';
import { connect } from 'net';

const rootReducer = combineReducers({
    supplierReducer,
    DataTableReducer
});

const store = createStore(
    rootReducer,
    applyMiddleware(logger)
);

const app = (
    <Provider store={store}>
        <App />
    </Provider>
);

ReactDOM.render(app, document.getElementById('root'));

serviceWorker.unregister();

App.js


import DataTable from 'react-redux-datatable';

class App extends Component {
render() {
        const apiLocation = 'https://api.myjson.com/bins/j59v8';

        const tableSettings = {
            tableID: 'BasicDataTable',
            keyField: 'request_id',
            tableColumns: [
                {
                    title: 'Ref',
                    key: 'request_id',
                },
                {
                    title: 'First Name',
                    key: 'first_name',
                }
            ],
        };

        return (
            <div>
                <DataTable
                    tableSettings={this.tableSettings}
                    apiLocation={this.apiLocation}
                />
            </div>
        );
    }

}

const mapStateToProps = state => {
    return {
        name: state.name,
        address: state.address,
        supplierData: state.supplierData
    };
};

const mapDispatchToProps = dispatch => {
    return {
        onSupplierDataListSuccess: (response) => dispatch({
            type: 'SUPPLIER_DATA_SUCCESS',
            response: response
        }),
        onSupplierDataListFailure: () => dispatch({
            type: 'SUPPLIER_DATA_FAILURE'
        })
    }
};

export default connect(mapStateToProps, mapDispatchToProps)(App);

我收到错误,在“Connect(DataTableContainer)”的上下文或道具中找不到“存储”。要么将根组件包装在 Provider 中,要么将“store”作为 prop 显式传递给“Connect(DataTableContainer)”。

【问题讨论】:

  • 你没有导入连接
  • 您解决过这个问题吗?我遇到了同样的错误,还没有弄清楚。

标签: reactjs react-redux


【解决方案1】:

为了访问商店,您需要使用mapStateToProps 函数。在此处查看文档:Connect: Extracting Data with mapStateToProps

【讨论】:

  • 我已经从文件中给出了最少的代码。如果我显示导入,它将是非常大的文件。所以只给出sn-p。它没有显示任何与导入相关的错误。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-07-12
  • 1970-01-01
  • 2018-04-30
  • 2018-08-02
  • 2017-06-13
  • 2018-02-15
  • 2017-04-20
相关资源
最近更新 更多