当我在使用 Downshift 时渲染输入元素时,做错了吗
<input {...getInputProps({...this.props})} />
还是我应该更具体地说明对象中将哪些属性传递给getInputProps?
{...getInputProps({placeholder: this.props.placeholder})}
后者不会让我添加其他属性(例如data-testid:controlName
)而不更改我的源代码控制以专门寻找它
根据文档,您应该将所有道具作为输入元素的对象传递。我没有亲自使用过降档,但我想这会起作用(并且只通过你需要的东西而不额外的“混乱”总是好的做法):
<input {...getInputProps({
placeholder: this.props.placeholder,
data-testid: controlName,
moreProps: this.props.additionalInfo
})} />
但是,为了更直接地解决您的原始问题,只要您的属性this.props
被适当标记(即placeholder: placeholderValue
),this.props
作为getInputProps()
.