将 redux dispatch 映射到 redux-form
Map redux dispatch to redux-form
抱歉,如果这个问题已经在别处得到解答,我是 Redux 初学者,我找不到任何相关内容。
我在将调度映射到 ReduxForm 时遇到问题。我这样设置减速器:
import { reducer as formReducer } from 'redux-form';
import foo from './foo';
import bar from './bar';
const rootReducer = combineReducers({
foo,
bar,
form: formReducer
});
export default rootReducer;
然后像这样组合它们:
import rootReducer from '../reducers/index';
const loggerMiddleware = createLogger();
const createStoreWithMiddlware = applyMiddleware(
thunkMiddleware,
loggerMiddleware
)(createStore);
export default function configureStore(initialState) {
const store = createStoreWithMiddlware(rootReducer, initialState);
return store;
}
然后像这样将 dispatch 映射到 props:
function mapStateToProps(state) {
return {
foo: state.foo,
bar: state.bar
}
}
function mapDispatchToProps(dispatch) {
return {
actions: bindActionCreators(Actions, dispatch),
}
}
export default connect(
mapStateToProps,
mapDispatchToProps
)(App)
然后我有一个表单组件,我将其包装在 reduxForm 中,如下所示:
TestForm = reduxForm({
form: 'testForm',
fields: ['firstName', 'lastName', 'email']
})(TestForm);
export default TestForm;
但是我得到一个错误:
Warning: Failed propType: Required prop dispatch was not specified in ReduxForm(TestForm). Check the render method of TestFormParent.
将调度注入表单组件的最佳方法是什么?
原来 npm 上的文档有点不同,而且更完整。如果其他人遇到此问题,请使用 connectReduxForm 而不是 reduxForm 解决问题。
reduxForm 适用于 redux-form
的第 4 版