【发布时间】:2017-02-16 16:16:23
【问题描述】:
我很困惑为什么 React 坚持要我给我的受控文本输入组件自己的内部状态。我按照官方文档创建了一个受控输入,而 React 通过控制台对我大喊大叫:
*warning.js:36 警告:ClientInfoTextInput 正在更改要控制的文本类型的不受控制的输入。输入元素不应从不受控切换到受控(反之亦然)。决定在组件的生命周期内使用受控输入元素还是不受控输入元素。
render() {
return (
<input type="text"
className={styles.ClientInfoTextInput}
value={this.props.propToPass}
onChange={this.props.propMethodToPass}
/>
)
那么,为什么我不能通过 props 将状态传递给受控的输入组件而不让 React 不高兴呢?
【问题讨论】:
-
如果不显示完整的组件代码,就很难判断。组件名称是 ClientInfoTextInput 吗?如果是这样,我认为您的问题是初始化时“this.props.propToPass”未定义。您可以检查未定义,如果是,则传递默认值。
-
请显示整个文件,这样我们更容易理解发生了什么。 @ericg 说的很可能是你的问题,但在我们看到更多内容之前我们不会知道
标签: reactjs