问题标签 [controlled-component]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
reactjs - 来自 Redux 的受控输入,onChange 处理程序
我已经控制了从 redux 设置值的输入,我如何onChange
在此处设置处理程序
javascript - 我想要 React 中受控组件和不受控组件之间的东西
我在 React 中有一个输入字段。
这样它的行为就像我需要它的行为一样:
- 如果没有
this.props.answer
,则输入中没有初始值。 - 用户可以输入任何数字。什么都没有发生
onChange
- 一旦用户按下 Enter,状态就会改变(在
onAnswer
函数中)。此后,输入字段的值保持不变this.props.answer
,用户不能再更改该值。
但是当用户按下 Enter 时,我会收到以下警告:
组件正在更改要控制的类型编号的非受控输入。
我读到了不受控制的组件,我试过这个:
这样我不会收到警告,但在用户按 Enter 后输入字段仍然可编辑。我也尝试同时使用value
和defaultValue
属性,但我再次收到相同的警告。
我希望输入字段受到某种控制,但我不想更改状态,onChange
但仅在用户按下 Enter ( onKeyUp
) 时才更改。在此之后,用户应该无法编辑输入。有没有办法实现这种行为?
更新:我不知道我可以readOnly
根据状态设置输入的属性。设置状态后将其设置为 false 可以解决我的问题。
javascript - 如何创建 Vuejs 控制的输入表单?
我习惯于使用状态创建受控组件;但是,我是新手Vue
,想了解如何将我的代码从 react 重新创建为 Vue 可以使用的东西。我希望将输入字段值存储在一段数据中,以便我可以对它们做一些事情。
从'axios'导入axios;
reactjs - props.names.map 不是函数
我有一个名为 App 的反应组件,其中包含 2 个组件:Form 和 Table。并且它们都是受控组件。
在表单中,有一个输入元素和一个按钮。
input 元素有一个 onChange 属性;每当值更改时,它都会更改应用程序状态中的值。
该按钮具有由 App 组件提供的 onClick 属性;每当单击按钮时,状态的 firstNames(它是一个数组)将与 firstname 的状态值相加。
问题是当我单击按钮时,它会抛出一个错误,说我没有传入数组并且它没有 map 方法,即使在回调中,更新的状态确实显示了一个数组。
下面是代码:
react-native - react-native-material-textfield 不能作为受控输入
我正在使用“react-native-material-textfield”进行文本输入。我有一个视图来编辑用户详细信息,它在安装时从 api 获取值并将其设置为状态。但是在将“react-native-material-textfield”升级到“0.16.1”之后,原始名字值不会显示在安装后的文本输入中。我在这里做错了什么?
javascript - 使用文件类型输入时将控制更改为未控制
我为我的应用程序定义了多个状态,如下所示:
我使用如下输入从我的设备获取图像:
我定义了如下文件上传器:
组件正在将文本类型的受控输入更改为不受控制。输入元素不应从受控切换到不受控(反之亦然)。决定在组件的生命周期内使用受控输入元素还是不受控输入元素。更多信息:
解决这个问题的任何想法?
javascript - ReactJS/Redux:受控输入 - 使用属性设置值
我使用受控文本字段,以便监听该字段中值的变化,并在以大写或小写形式请求条目的情况下强制该值。
所以我必须使用组件状态的 value 属性。
不幸的是,如果我在另一个 Redux 组件中使用这个组件,并且想通过连接到 Redux 的全局状态的属性来更新这个字段,我不知道该怎么做。
如果我使用我的组件的属性来对我的受控字段进行赋值,那么在字段的 onChange 之后,我会丢失与条目相关的修改(因为我没有按值对状态进行赋值)。
如果我在受控字段的估值中使用状态,则根本不会检索 Redux 道具提供的值。有任何想法吗?
我的组件的简化代码片段:
reactjs - 反应不受控制的输入:更好地理解为什么它不会在值变化时重新渲染
编码
我有这个简单<form>
的受控和非受控输入。
我期待什么
在每次输入值更改后查看console.log
消息,包括受控和非受控输入
我能得到什么
它只发生在受控输入上,而不发生在不受控制的输入上。
问题
我了解 React 自己处理不受控制的输入。而且,不知何故,它避免了重新渲染的输入,原因value
是在内部处理。但是......为什么这useEffect
不是在进一步的value
变化上运行?仅仅因为没有明确的setValue
调用?
我对我之前的不完整假设的真实和良好的解释很感兴趣,但最重要的是:
我怎样才能使它useEffect
真正运行任何时间value
更改?
reactjs - 如何使用反应钩子创建带有参数和传递事件对象的受控输入?
我正在尝试制作一个表单并创建受控输入,我以前使用过window.event
,但这已被弃用,我不想再使用它了我不使用它,我尝试使用syntheticEvent但它不起作用,我尝试了两种方法我使用.bind()添加事件这不起作用给出了无法访问输入的错误,在初始化之前设置输入,在第二个使用 SyntheticEvent (e)=>{changeHandler} 时,当我写第二个字母时,它崩溃并出现错误无法读取 null 的属性 id,这是怎么回事,这可能与钩子有关还是我应该使用类?
使用 useState 的输入配置我作为道具传递给我的自定义输入组件
编辑:出于性能原因,此合成事件被重用。如果您看到这一点,则表示您正在访问已target
发布/无效合成事件的属性。这设置为空。如果您必须保留原始合成事件,请使用event.persist()
.
使用event.persist()
解决了问题,但我想知道可以使用它吗?