为什么这个组件从受控切换到不受控制? - 反应

时间:2016-06-18 17:30:17

标签: reactjs redux

这是我的无状态反应组件:

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的值。

我对此有何看法?

1 个答案:

答案 0 :(得分:11)

不受控制的输入不是直接引用您的组件,而是引用组件中定义的输入字段。

React区分controlleduncontrolled components

  

没有值属性的<input>是一个不受控制的组件

首次渲染组件时,您的acresMin属性undefined是什么?这会导致输入首先被渲染为不受控制的输入,但作为受控制的输入稍后一旦属性设置。