Redux-Form没有运行mapStateToProps函数

时间:2016-04-12 14:08:03

标签: reactjs redux react-redux redux-form

redux-form文档说reduxForm()装饰器接受一个必需参数(配置对象)和四个可选参数(相同的四个参数传递给react-redux中的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);

3 个答案:

答案 0 :(得分:1)

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

import ...

class MyForm extends React.Component { 
    ...
}

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

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

答案 1 :(得分:0)

不,你不会误解文档。我已经运行了你的代码示例,它可以很好地调试调试器语句。

答案 2 :(得分:0)

您是否将其放置在<Provider>组件内的某个位置?

老实说,我的代码没有任何问题。