当前位置: 首页 > 知识库问答 >
问题:

在纯ES2015函数中对“setstate”的反应方式

公冶元青
2023-03-14

在这里反应newb。我有一个返回表单(表示组件)的纯函数。在这种表单中,我需要为那些受控制的文本字段处理onChange事件。FWIU,我需要这个。设置状态(...)在我的onChange事件处理程序中。但是,由于这是一个纯函数,我没有访问this.setstate()的权限。在ES2015函数中有没有一种很好的方法来设置这些onChange事件的状态?如果有帮助的话,我也在使用redux。示例代码:

import React, {PropTypes} from 'react'

const ApplicationForm = ({submitHandler, person}) => (
<form onSubmit={e => submitHandler(e)}>
 <div>
            <label htmlFor="firstName">First Name:</label>
            <input type="text" name="firstName" onChange={e => setState(e.target.value)} value={person.firstName || ''}/>
 </div>
...
</form>
)

共有1个答案

宋安晏
2023-03-14

它是一个无状态函数,没有状态可设置

如果使用redux,您可能希望在onChange中触发redux操作,将新值作为参数传递,并让该操作更新redux存储区中person.firstName的firstName值

我建议看一下redux-form以减少一堆样板文件

 类似资料:
  • 我是React的新手,我正在尝试用API编写一个应用程序。我一直得到这个错误: TypeError:This.SetState不是函数 当我尝试处理API响应时。我怀疑这装订有问题,但我不知道如何修理它。下面是我的组件的代码:

  • 问题内容: 有人可以解释一下为什么 this.setState 不是函数吗? 我不明白为什么我的代码有错误 谢谢 问题答案: 这是问题。使用。

  • 问题内容: 我有一个简单的React组件,它的输入字段带有一个onChange事件。触发onChange事件,并使用输入字段中的值更新某些组件状态。但是我在控制台记录日志时注意到状态是一个字符。因此,如果我键入“ Hello”,控制台将显示状态为 ‘’在H上 HE上的“ H” HEL上的“ E” 地狱中的“ L” HELLO上的“ L” 那个怎么样? 问题答案: 是异步的。这意味着记录的时间控制台

  • 问题内容: 是否有将功能放置在react组件中的偏好?我仍在学习反应,因此只想找出最佳做法。 问题答案: 每次渲染都会在render方法中创建一个函数,这会对性能造成轻微的影响。如果将它们放入渲染中也很麻烦,这是一个更大的原因,您不必滚动渲染中的代码即可查看html输出。始终将它们放在课堂上。 对于无状态组件,最好将函数保留在main函数之外,而传递props,否则该函数也会在每个渲染器中创建。我

  • 问题内容: 这两个功能之间的主要区别是什么? 为什么用直接更改状态的handleOnChange()函数可以正常工作? 当我使用第一个通过回调更改状态的函数时,出现以下错误: 问题答案: 这是setState的两种不同语法 第一: 使用updater函数作为第一个参数。 第二: 使用要更新的对象 在更新程序功能中使用综合事件时,需要使用 从 文档中 : SyntheticEvent被合并。这意味着

  • 我在问之前找了很多,但似乎找不到一个适合我的解决方案。 我有一个函数,我需要在状态设置为新值后调用。 即使该函数是作为setState回调调用的,它仍然获得旧值。