【发布时间】:2020-10-23 22:28:50
【问题描述】:
我在 react 中编写了一个可重用的输入类型 UI 组件,其中名称、描述等已根据使用位置动态更改
const InputType = props => {
const { inputName, inputTypes, descriptionInput, onChangHandler, onBlurHandler, iconName } = props;
return (
<div className="a-input a-input--large">
<label>{inputName}</label>
<div className="m-input-tip ">
<input type={inputTypes} onChange={onChangHandler} onBlur={onBlurHandler}>
<div className="a-tip">
{
isNotNullOrDefined(iconName, true) &&
<Icon />
}
<Icon className="a-icons--small" name={iconName} />
<span>{descriptionInput}</span>
</div>
</input>
</div>
<div className="validation">This is a required field</div>
</div>
);
}
但是当我尝试像这样简单地执行它时,
return (
<InputType
inputName="Type what you want to search"
inputTypes="text"
/>
);
我在控制台中收到这样的错误
Uncaught Invariant Violation:输入是一个空元素标签,必须 既没有
children,也没有使用dangerouslySetInnerHTML。
组件出现上述错误
【问题讨论】:
-
您不能在输入标签内添加 div。输入标签必须是自闭合标签。所以像
<input type={inputTypes} onChange={onChangHandler} onBlur={onBlurHandler} />一样使用它。并删除闭合输入标签</input>.. 参考: stackoverflow.com/a/36527825/7785337
标签: javascript html reactjs input