JSX+Rreact中的动态tabIndex属性
Dynamic tabIndex attribute in JSX + React
如何以同样的方式有条件地设置React组件上的tabIndex
属性,比如设置disabled
属性?
我需要能够同时设置值和/或删除属性。
第一次尝试是将整个属性键和值作为变量:
<div { tabIndex } ></div>
但是编译器抱怨。
第二个想法是:
const div;
if( condition ){
div = <div tabIndex="1"></div>
}else{
div = <div></div>
}
然而,这是不可取的,因为我的实际组件上有很多属性,而且我最终会有大量重复的代码。
我唯一的其他想法是使用ref,然后使用jQuery来设置tabindex
属性,但我宁愿不必这样做。
有什么想法吗?
您可以使用属性排列运算符:
let props = condition ? {tabIndex: 1} : {};
let div = <div {...props} />
我相信有一种更简单的方法(比Aaron的建议)。
如果JSX元素的属性值为null或未定义,React将从该元素中删除该属性。我需要一个有把握的人来证实这一点。
因此,你可以使用这样的东西:
let t1 = condition ? 1 : null;
let div = <div tabIndex={t1}>...</div>;
如果t1
为空,则tabIndex
属性将被删除。
例如,我们有三个属性,tabIndex、class和id。
let tabIndex;
let id;
let className = "tab";
let props = {
tabIndex,
className,
id,
}
let div = <div {...props} />
undefined/null值道具不会添加到div中,因此渲染结果为
<div class="tab" />
相关文章:
- RegEx删除空属性?例如,如果(class=“”||class=“”)移除;否则就下课
- 全局变量和全局对象的属性之间有什么区别吗
- 如果使用 lodash 将属性存在于另一个对象中,则向对象添加属性
- 如何在Bootstrap Modal中为动态点击生成的变量设置jade属性
- 序列化数据属性中对象的最可靠方法
- 分析高度属性时出现意外值{{specs.height}}.index.html
- TypeError:无法读取属性'推'未定义的JavaScript
- 同样,同样的错误'ahorcado.js:26未捕获类型错误:无法读取属性'beginPath'
- AngularJS-使用'true'属性
- 可以't使用JavaScript获取width属性
- 未捕获的TypeError无法读取未定义的属性socialsharing
- 如何使用javascript获取嵌套对象中所有子对象的单个属性
- JavaScript Pub/Sub属性访问问题
- 从JavaScript访问struts操作中的属性
- 是否可以从父类访问子类的属性
- jQuery:使用实时事件添加tabindex属性
- JSX+Rreact中的动态tabIndex属性
- 是Javascript's tabIndex属性跨浏览器
- 想要跳过基于tabindex属性的文本框
- 在Ember模板中增加tabindex属性