javascript - 为什么在输入组件中 this.props.value === undefined 时设置状态?
问题描述
刚刚在antd的Input组件中找到了如下代码,不明白为什么if (this.props.value === undefined)
要在这里使用。有人可以向我解释它的作用吗?
setValue(value: string, callback?: () => void) {
if (this.props.value === undefined) {
this.setState({ value }, callback);
} else {
callback?.();
}
}
完整代码可在GitHub 上获得。
解决方案
this.props.value === undefined
用于检查组件是否处于“不受控制”模式,即使用内部状态来保持值。
推荐阅读
- chef-infra - Windows 上的 Kitchen EC2 - 最终的 WinRM::WinRMAuthorizationError
- macos - SSH 在 macOS 上随时间变慢
- javascript - 我可以在一个页面上放超过 1 个吗
- c# - 如何减慢旋转速度?
- javascript - 将图像从对象插入到 src
- c# - 从“ISampleSource”读取样本后如何播放样本数组
- informatica-powercenter - 具有完全相同会话属性的 2 个映射的行为完全不同,逻辑略有变化
- mysql - 列中项目之间的差异
- javascript - 带花括号的 Es6 类
- css - 灯箱位置不会停留在固定位置 div 内