1

redux-form 文档说装饰器接受一个必需参数(配置对象)和四个可选参数(在 react-redux 中reduxForm()传递给装饰器的四个参数相同)。connect但是,当我将mapStateToProps()函数作为参数传递给reduxForm()装饰器时,mapStateToProps()实际上并没有运行。请参阅下面的简化代码示例。解释器永远不会到达debugger语句。我对 redux-form 文档有误解吗?

import React from 'react';
import { reduxForm } from 'redux-form';

class Home extends React.Component {
  render() {
    return (
      <div>This is the home component.</div>
    );
  }
}

function mapStateToProps(state) {
  debugger;
  const {
    ui: {
      isMailingListFormVisible
    }
  } = state;
  return {
    isMailingListFormVisible
  };
}

export default reduxForm({
  form: 'mailingList',
  fields: ['firstName', 'email']
}, mapStateToProps)(Home);
4

3 回答 3

1

您的代码在 v6 上不起作用,仅仅是因为在 v6 上您必须装饰您的 Form 组件并将整个组件手动连接到商店:

import ...

class MyForm extends React.Component { 
    ...
}

MyForm = reduxForm({
  form: 'myForm',
  ...
})(MyForm);

export default connect(mapStateToProps, mapDispatchToProps)(MyForm);
于 2016-10-28T10:16:59.603 回答
0

你把它放在<Provider>组件内的某个地方?

老实说,我看不出你的代码有什么问题。

于 2016-04-12T20:29:13.593 回答
0

不,您没有误解文档。我已经运行了您的代码示例,它很好地命中了调试器语句。

于 2016-04-12T16:35:54.577 回答