react组件 怎么保证id不重复

需要实现一个组件,组件内有通过document.getElementById('id')去获取真实dom的需要。如果同时调用多个这个组件 就会出现id 重复的问题,于是 我选择从外部传入一个值作为元素的id。有没有更好的解决办法。

阅读 5.4k
2 个回答

基于当前毫秒时间戳 + 随机字符串组合生成这个 ID 呗,碰撞概率还是很低的。

在组件内部生成一个随机ID,我经常用的是使用第三方库来生成,比如shortid,github地址:https://github.com/dylang/sho...,能生成短的,几乎不可能重复的ID。

// demo.jsx

const shortid = require('shortid');

class FooComponent extends Component {
    constructor(props) {
        super(props);
        this.xxxDOMId = shortid.generate();
    }
    
    render() {
        return (
            <div id={this.xxxDOMId}>Hello</div>
        )
    }
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题