我是React的新手,我尝试将此http://redux-form.com/5.2.5/#/getting-started?_k=vz58jr开始表单应用于我的组件,但是存在问题:
未捕获的不变违规:无法在“Connect(ReduxForm(ContactForm))”的上下文或道具中找到“store”。包装好 a中的根组件,或者明确地将“store”作为prop传递 “连接(ReduxForm(ContactForm))”。
我该怎么办?
答案 0 :(得分:2)
我使用过redux-mock-store,react-redux,酶和柴。
例如:
singup
class Signup extends Component { ... }
Signup = reduxForm({
form: 'newUser',
fields: ['email', 'password', 'confirmPassword']
})(Signup);
Signup = connect(null, actions)(Signup);
export default Signup;
signup.test
import React from 'react';
import { shallow, mount } from 'enzyme';
import { expect } from 'chai';
import configureStore from 'redux-mock-store';
import { Provider } from 'react-redux';
import Signup from '../src/components/signup';
let wrapper;
const mockStore = configureStore([]);
const store = mockStore({});
describe('Signup', () => {
beforeEach(() => {
wrapper = mount(
<Provider store={store}>
<Signup />
</Provider>
);
});
it ('should have signup className', () => {
expect(wrapper.find('.signup')).to.have.length(1);
});
});
答案 1 :(得分:1)
我相信你需要通过提供商传递商店。这是我用redux-form工作的github repo:https://github.com/joshuaslate/mern-starter/blob/master/client/src/index.js#L34
以下是使用提供商传递商店的视频:https://egghead.io/lessons/javascript-redux-passing-the-store-down-with-provider-from-react-redux
答案 2 :(得分:0)
所有这些例子都是wrapped with Provider。如何设置Redux存储超出了redux-form
文档的范围。按照约书亚发布的链接了解这一点。