我想使用React在元素中添加一个自定义属性(例如名为“key”的属性),但我只能添加一些关键字,如“className”、“style”等。。。
我现在的代码是这样的:
function TodoItem(props){
return React.createElement("div",{key:props.id,className:"todo-item"},
React.createElement("input",{type:"checkbox"},null),
React.createElement("p",null,props.text)
);
}
我不能添加"key:props.id"。
我的目标是创造这样的东西:
<div class="todo-item" key="<int>" data-reactid=".0.0"><input type="checkbox" data-reactid=".0.0.0"><p data-reactid=".0.0.$test">Take out trash</p></div>
现在我不知道如何放置key=“int”部分
HTML5的设计考虑到了数据的可扩展性,这些数据应该与特定元素关联,但不需要有任何定义的含义。data-*属性允许我们存储关于标准、语义HTML元素的额外信息,而无需其他黑客攻击,如非标准属性。。。
据开发商介绍。mozilla。org如果要指定自定义属性,请在本例中使用data-[customName]
类似data key
。
使用以下格式:'属性':'key'
var elm = React.createElement(
/* element */ 'h1'
/* custom attribute */ ,{'data-key': 'todo-item'}
/* innerHTML */ ,'Hello'
)
ReactDOM.render(
elm,
document.getElementById('root')
)
HTML DOM结果:
<div id="root">
<h1 data-key="todo-item">Hello</h1>
</div>
如果要添加类属性,请使用逗号{'data-key':'todo item',className:'myClass'}
以下示例使用键
道具,因此不会显示警告。
function TodoItem({ arr }) {
return arr.map(item =>
React.createElement(
"div",
{
key: item.id, // <--- Put the key prop here.
className: "todo-item"
},
React.createElement("input", { type: "checkbox" }, null),
React.createElement("p", null, item.text)
)
);
}
const data = [
{ id: 1, text: "Box 1" },
{ id: 2, text: "Box 2" }
];
const rootElement = document.getElementById("root");
ReactDOM.render(React.createElement(TodoItem, { arr: data }), rootElement);
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/16.6.3/umd/react.production.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react-dom/16.6.3/umd/react-dom.production.min.js"></script>
<div id="root"></div>
只是好奇,为什么你不想用jsx?
如果你想看翻译,可以访问babeljs。木卫一
例如:
function Comp() {
return <div myprop="prop" />
}
结果致:
function Comp() {
return React.createElement("div", {
myprop: "prop"
});
}
而且,因为我还不能发表评论。key
字保留如上所述。所以使用键,这样反应可以渲染更聪明,如果你想传递自己的东西,还有一些其他的名字。
编辑:
因此,要使组件与阵列保持原样,请这样做。
function NoJSX(props) {
return React.createElement(
"div",
{
key: "ishouldbeunique", // a unique value, specially for React
myKey: "icanbeeverything" // whatever you want
},
props.children
);
}
将导致:
<div myKey="icanbeeverything">test me</div>
问题内容: 背后有不同的原因,但是我想知道如何简单地向JSX中的元素添加自定义属性? 问题答案: 编辑:更新以反映React 16 React 16本机支持自定义属性。这意味着向元素添加自定义属性现在就像将其添加至函数一样简单,如下所示: 先前的答案(第15和更早版本) 当前不支持自定义属性。有关更多信息,请参见此未解决的问题: 解决方法是,您可以在中执行以下操作:
一个具有“姓名”、“地址”和“工资”属性的实体“人” 两个角色-“员工”和“经理” 虽然员工应该能够编辑他自己的地址,但他肯定不能改变他的工资或其他人的地址。虽然他可能被允许看到自己的工资和其他用户的地址,但他甚至不允许看到其他人的工资,更不用说编辑了。另一方面,manager具有完全的readwrite权限。 这在后端不是问题--我们可以在那里使用自定义bean验证来强制执行写权限。 我想收到
我正在尝试使用Javascript选择此复选框 下面的代码可以工作,但并不理想 我试过这些 但它们并不起作用。有什么想法能让这件事成功吗? 数据值未硬编码的更新代码
我正在为Wordpress中的Elementor编辑器开发一个自定义小部件。 我想设置自定义小部件图标,Elementor提供了get_ICON函数,我们必须返回类,该类包含:before伪元素,并在浏览器中呈现。 是否有任何方法可以使用png或任何其他格式将图标更新到Elementor小部件。 甚至我也试着用内容为空和背景图像的类。它不起作用了。 在Elementor中创建自定义小部件的文档:h
本文向大家介绍vue如何获取自定义元素属性参数值的方法,包括了vue如何获取自定义元素属性参数值的方法的使用技巧和注意事项,需要的朋友参考一下 偶尔还是会陷入到DOM操作上面去,其实你应该关心的是数据传递,而不是操作DOM。如果你是想获取data-num的数据,可以这样写: 这样就可以取到这个值了,如果你是确实想操作DOM,那你可以这样写: 2.通过e.target.getAttribute 3.
那么如何添加和属性呢?