Pet*_*len 4 javascript reactjs
我对 React 相当陌生,但想知道适用于常规 DOM 的相同限制是否也适用于 React DOM,在本例中是 HTML 元素 ID 的唯一性。我之所以这么问,是因为在我目前正在使用的代码中,我发现了一个复选框组件,该组件将 ID 作为属性并将其设置在子元素上。虽然这只会在实际 DOM 中渲染一个具有 ID 的元素,但在 React DOM 中现在将有两个具有 ID 的元素,除了子元素之外,组件本身也会拥有它。
const Checkbox = ({
label,
name,
id,
allowLabelHtml = false,
checked = false,
className = "checkbox-element",
onCheck = () => {},
onUncheck = () => {},
onChange = value => (value ? onCheck() : onUncheck()),
onBlur = () => {},
labelClass = ""
}) => (
<div className={className}>
<input
id={id}
name={name}
type="checkbox"
className="standard-checkbox-style"
onChange={() => onChange(!checked)}
checked={checked}
onBlur={onBlur}
/>
{label !== null && (
<label className={labelClass} htmlFor={name}>
{label}
</label>
)}
</div>
);
Run Code Online (Sandbox Code Playgroud)
这里还有一个用于 chrome DOM 浏览器的 React 开发者工具的屏幕截图
小智 6
在 React 中,我们很少在组件上使用 Ids 属性。请注意,React DOM 在高层上是否接受重复的 id;该页面仍然会呈现为 html 页面,因为浏览器只理解 html。并且该CheckBox组件可能会呈现为div仍具有与输入元素相同的 id 的 a 。所以我的建议是,
id因为想要进行样式化而使用该属性,那么您应该使用class属性。id属性作为连接函数onSubmit或 的引用onChange,那么您应该使用name属性。不过,我发现了一篇相关的帖子,可能会帮助您通过评论获得更好的理解。
className 属性是否承担 Reactjs 中 id 属性的角色?
| 归档时间: |
|
| 查看次数: |
4908 次 |
| 最近记录: |