reactjs - React-redux:如何将 redux 表单 Prop 冒泡到父组件

标签 reactjs react-redux react-redux-form

因此,我一直在实现模态表单,该表单允许我在列表中创建新用户以及编辑它们。我已经对其进行了设置,以便我在 Modal 中的实际表单位于其自己的组件中,因此我可以轻松地将 initialValues 传递给要填充的表单。我现在遇到的问题是,当我尝试使用 redux 的 handleSubmit 函数时,我似乎无法 .get() 表单中的字段值,因为它一直告诉我 .get() 不是函数。我以前看过这项工作,所以我不确定我做错了什么。

为了尽可能简短,这里是包含表单的组件中的 render() 方法:

render() {
    const { handleSubmit, pristine, reset, submitting } = this.props;
    return (
      <form>
       <div>
           <Field
             name="first_name"
             component={TextField}
             hintText="First Name"
           />
       </div>
       <RaisedButton label="Update user" style={{marginRight: "10px"}} disabled={pristine || submitting} onClick={handleSubmit} primary={true} />
      </form>
   )
}

这是父组件的渲染方法:

render() {
   return (
     <Dialog
                  title={this.state.modalTitle}
                  modal={false}
                  open={this.state.userModalOpen}
                  onRequestClose={this.handleClose}
                >
                  <ManageUserform
                    isEditingUser={this.state.isEditingUser}
                    handleSubmit={this.submit}
                    handleClose={this.handleClose}
                    initialValues={this.state.user}/>
                </Dialog>

   )
}

这是我在提交表单时运行的实际 submit() 函数:

/**
   *  Submit the user form
   */
  submit(formProps) {

    const user = {
      first_name: formProps.get('first_name')
    };

    // Are we editing?
    if(this.state.isEditingUser) {
      user['_id'] = this.state.user.id;
      this.props.dispatch(updateUser(user));
    } else {
      // Dispatch action to convert the request to a work order
      this.props.dispatch(createUser(user));
    }

    // Close the modal
    this.handleClose();
  }

^ 这就是问题所在。提交时出现错误:

未捕获类型错误:formProps.get 不是函数

以前,当我直接在父组件中拥有表单时,我能够使用 formProps.get() 方法,但现在发生了一些事情,因为它在组件内部,它不会冒泡到它的父组件。我在这里缺少什么小东西吗?

提前致谢!

最佳答案

因为你改变了函数调用上下文,你应该使用绑定(bind)方法调用它,你应该设置新的this。尝试更改 onClick={handleSubmit.bind(this)}

关于reactjs - React-redux:如何将 redux 表单 Prop 冒泡到父组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43838335/

相关文章:

reactjs - React Router 4 Match 返回未定义

javascript - React.js 终极版 : unwanted change of redux store on input handling

reactjs - 如何使用 useEffect 从 Redux 存储中的状态更新 React UI

react-redux - 异步验证后的 Redux-Form 文件上传

reactjs - 提交时进行 Redux 表单验证

javascript - 如何将 Prop 传递给 Redux Form 中的 onSubmitSuccess 回调?

javascript - 如何调用具有不同值的函数而不在每次渲染上重新创建新的箭头函数?

javascript - 使用 State Hook 正确设置状态

javascript - Browserify 和 Reactify 源映射包含完整的本地路径名

javascript - 这个 reducer 中的 return { ...state, } 到底是什么意思?