将用户输入作为数组从redux表单添加到状态

将用户输入作为数组从redux表单添加到状态,redux,react-redux,redux-form,Redux,React Redux,Redux Form,我试图将从redux表单接收到的数据放入我的状态。当用户提交表单时,会创建一个对象,但我无法将此数据推送到用户数组中。这是我的密码: class UserControlPage extends Component { constructor(props) { super(props); this.state = { users: []}; this.handleSubmit = this.handleSubmit.bind(this); } handle

我试图将从redux表单接收到的数据放入我的状态。当用户提交表单时,会创建一个对象,但我无法将此数据推送到用户数组中。这是我的密码:

class UserControlPage extends Component {

  constructor(props) {
    super(props);

    this.state = { users: []};
    this.handleSubmit = this.handleSubmit.bind(this);
  }

  handleSubmit=(values) => {
    const newUser = this.state.users;

    newUser.push(addUser(values));

    this.setState({ users: newUser });
  }

  render() {
    return (
          <div>
            <legend>
                <span className="glyphicon glyphicon-user" aria-hidden="true"></span> User creation
            </legend>
            <UserCreation onSubmit={this.handleSubmit}/>
          </div>
        );
    }
}

function mapDispatchToProps(dispatch) {
  return bindActionCreators({addUser}, dispatch);
}

function mapStateToProps(users) {
  return { users };
}

export default connect(mapStateToProps, mapDispatchToProps)(UserControlPage);
我猜问题一定是我没有正确地初始化用户状态或映射它。但我没有真正的线索

更新:
确实成功地创建了一个对象,但不幸的是,该对象似乎不存在。因此,我从表单中获取了一个包含数据的users对象,但在我的存储中,什么都没有。

我修复了它。我没有正确地将我的状态映射到商店。我将handleSubmit()更改为:

以及我的状态映射

function mapStateToProps(users) {
  return { users };
}

我还删除了构造函数中的这一行:

this.state = { users: []};

我认为您可能在这里寻找的是redux表单或选项,因为它们用于处理表单中的数组数据。另外,由于您使用的是redux和redux表单,因此使用React的组件状态来尝试存储此数据似乎有些奇怪。我想我的问题是,我尝试将数据存储在组件状态,但我的reducer似乎没有更新我的存储。我通过handlesubmit函数从表单中获取数据,这样至少可以工作。
  handleSubmit=(values) => {
    this.props.addUser(values);
  }
function mapStateToProps(users) {
  return { users };
}
function mapStateToProps(state) {
  return { users: state.users };
}
this.state = { users: []};