Reactjs 错误的反应控制组件警告?
此JSX代码段正在生成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={
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);
}
}