Reactjs 错误的反应控制组件警告?

Reactjs 错误的反应控制组件警告?,reactjs,react-redux,Reactjs,React Redux,此JSX代码段正在生成react controlled components警告: <input type="text" className="form-control endpoint-text" placeholder="fred.scuttle" value={ this.props.internals.username } onChange={

此JSX代码段正在生成
react controlled components
警告:

          <input
            type="text"
            className="form-control endpoint-text"
            placeholder="fred.scuttle"
            value={ this.props.internals.username }
            onChange={ this.handleUserNameChange.bind(this) }
          />
它只是在redux状态下设置/更新用户名字段:

export function emitSetUserName(uname) {
  return {
    type: EMIT_SET_NAME_CHANGE,
    payload: uname
  }
}
该状态变量的初始值是从同一组件中的cookie加载的:

 componentWillMount = () => {
   let username = cookies.get('uname');
   if ( username !== undefined ) {
     this.props.emitSetUserName(username);
   }
 }

这是比赛条件吗?我希望尝试访问和未定义状态值时会出现错误,而不是“受控输入”警告…

这确实是一个竞争条件。我需要处理cookied并在父组件中相应地设置状态<代码>默认值现在也可以正常工作。谢谢你的反馈

这确实是一种比赛状态。我需要处理cookied并在父组件中相应地设置状态<代码>默认值现在也可以正常工作。谢谢你的反馈

请同时发布您的
handleUserNameChange
处理程序。我的猜测是因为父级尝试在子组件输入上设置值。最好使用状态变量,而不是直接输入
props.internals.username
value={this.props.internals.username}
中尝试使用
defaultValue
而不是
value
在这种情况下,我通常使用defaultValue,但该值不会“显示”为默认值。处理它时,闻起来像是比赛状态。请同时发布您的
handleUserNameChange
处理程序。我的猜测是因为父级尝试在子组件输入上设置值。最好使用状态变量,而不是直接输入
props.internals.username
value={this.props.internals.username}
中尝试使用
defaultValue
而不是
value
在这种情况下,我通常使用defaultValue,但该值不会“显示”为默认值。在这上面工作,闻起来像是比赛状态。
 componentWillMount = () => {
   let username = cookies.get('uname');
   if ( username !== undefined ) {
     this.props.emitSetUserName(username);
   }
 }