reactjs - 在“连接(注册)”的上下文或道具中找不到“商店”
问题描述
我是 reactjs 的新手,正在使用 react-redux 开发一个小型注册功能,但面临这个错误。我正在关注某个教程,但现在似乎卡住了
下面是我的代码:
注册.js
import React, { Component } from 'react';
import NavBar from './subcomponents/NavBar'
import SignUpForm from './subcomponents/SignUpForm'
import { connect } from 'react-redux'
import {userSignUpRequest} from "./actions/signUpActions";
import PropTypes from 'prop-types';
class Signup extends Component {
render() {
const {userSignUpRequest} = this.props;
return (
<div>
<NavBar/>
<SignUpForm userSignUpRequest={userSignUpRequest}/>
</div>
);
}
}
Signup.propTypes = {
userSignUpRequest: PropTypes.func.isRequired
}
export default connect(null, { userSignUpRequest })(Signup);
index.js
import React from 'react';
import ReactDOM from 'react-dom';
import './redux-js/index';
import App from "./App";
import {applyMiddleware, createStore} from "redux";
import thunk from "redux-thunk";
const store = createStore(
(state = {}) => state,
applyMiddleware(thunk)
);
ReactDOM.render(
<provider store={store}>
<App />
</provider>
, document.getElementById('root'));
解决方案
错误
在“连接(注册)”的上下文或道具中找不到“商店”。要么将根组件包装在 a 中
<Provider>
,要么将“store”作为道具显式传递给“Connect(Signup)”
解决方案
您需要在文件中导入Providerindex.js
:
import React from 'react';
import ReactDOM from 'react-dom';
import './redux-js/index';
import App from "./App";
import {applyMiddleware, createStore} from "redux";
import thunk from "redux-thunk";
import { Provider } from 'react-redux'; //added
const store = createStore(
(state = {}) => state,
applyMiddleware(thunk)
);
ReactDOM.render(
<Provider store={store}> //fixed typo
<App />
</Provider >
, document.getElementById('root'));
推荐阅读
- node.js - 为不同的 VS 解决方案使用特定版本的 npm/node?
- python-3.x - 比较多个条件时如何仅获得一个布尔值?
- mysql - 如何根据和条件获取数据
- python - 不想在 listWidget 中点击/突出显示图标
- c# - 如何使用 csvhelper 高效地编写包含数千列的 csv 文件?
- .net - Visual Studio 2017 不显示已编辑/添加的图标
- react-native - 底部导航 | 反应原生
- java - 只绘制应该在屏幕上的节点?
- python-3.x - Python 模块的 __path__ 指向不存在的目录
- android - Android kotlin_Camera Intent 崩溃