如何在 reactjs 中使用 recompose 清理表单?

Posted

技术标签:

【中文标题】如何在 reactjs 中使用 recompose 清理表单?【英文标题】:How do I clean up form using recompose in reactjs? 【发布时间】:2019-03-02 20:38:20 【问题描述】:

提交表单后,我想清理它,但这个解决方案似乎不起作用。这是我的提交处理程序:

handleSubmit: ( title, body , props) => e => 
    e.preventDefault()
    props
        .handleCreatePost(
            variables: 
                title,
                body
            
        )
        .then(() => 
            return 
                title: "",
                body: ""
            
        )
        .catch(err => console.log(err))

【问题讨论】:

【参考方案1】:

每次您需要从组件内部更改道具时,您都必须使用withStateHandlers

compose(
  withStateHandlers(
    (title, body)=> (title, body), //set the state from parent props
     
      setTitle: () => title => (title), // update the title
      setBody: () => body => (body), // update the body
      clearProps: () => () => (titel:'', body: '') // create a handler to reset the values
    
  ),
  withHandlers(
    handleSubmit: ( title, body, clearProps , props) => e => 
      e.preventDefault()
      props
        .handleCreatePost(
          variables: 
            title,
            body
          
        )
        .then(clearProps) // reset the values 
        .catch(err => console.log(err))
      
    )
)

【讨论】:

以上是关于如何在 reactjs 中使用 recompose 清理表单?的主要内容,如果未能解决你的问题,请参考以下文章

你如何从 recompose 中读取这个 curry'd 函数……我的脑痛

如何在 React-Recompose 应用程序中将事件处理程序传递给 React-node

使用 recompose setStatic 并将其连接到 redux (nextjs)

React Recompose 在 Props 上导致 Typescript 错误

使用 recompose 和 typescript 正确键入 HigherOrderComponents

React Recompose:在 WithStateProps 中创建的方法不可访问