我有带有labels 的表单元素,我希望有唯一的 ID 来将 s 链接到具有属性label的元素。htmlFor像这样的东西:
label
htmlFor
React.createClass({ render() { const id = ???; return ( <label htmlFor={id}>My label</label> <input id={id} type="text"/> ); } });
我曾经根据this._rootNodeIDReact 0.13 生成 ID,但它不可用。现在最好和/或最简单的方法是什么?
this._rootNodeID
这个解决方案对我来说很好。
utils/newid.js:
utils/newid.js
let lastId = 0; export default function(prefix='id') { lastId++; return `${prefix}${lastId}`; }
我可以这样使用它:
import newId from '../utils/newid'; React.createClass({ componentWillMount() { this.id = newId(); }, render() { return ( <label htmlFor={this.id}>My label</label> <input id={this.id} type="text"/> ); } });
但它不会在同构应用程序中工作。
添加 17.08.2015 。您可以使用 lodash 中的 uniqueId 而不是自定义 newId函数。
更新 28.01.2016 。最好在componentWillMount.
componentWillMount