这是我的无状态反应组件:
export default ({acresMin, update}) => (
<div>
<input
onChange={(e) => update({'acresMin': e.target.value})}
placeholder="10"
type="text"
value={acresMin}/>
</div>
)
当我更改input
中的值时,我会得到warning
:
Warning: StatelessComponent is changing an uncontrolled input of type text to be controlled. Input elements should not switch from uncontrolled to controlled (or vice versa). Decide between using a controlled or uncontrolled input element for the lifetime of the component.
我正在使用onChange
进行更新并保存store
中正在填充props
的值。
我对此有何看法?
答案 0 :(得分:11)
不受控制的输入不是直接引用您的组件,而是引用组件中定义的输入字段。
React区分controlled和uncontrolled components:
没有值属性的
<input>
是一个不受控制的组件
首次渲染组件时,您的acresMin
属性undefined
是什么?这会导致输入首先被渲染为不受控制的输入,但作为受控制的输入稍后一旦属性设置。