背景: 处理复杂的需求时, 组件通过遍历渲染且需要绑定REF 的时候, 普通的useRef 无法满足需求, 这时候就需要用到 use-dynamic-refs 实现

    npm install —save use-dynamic-refs

    use-dynamic-refs

    1. import React, { useEffect } from 'react';
    2. import useDynamicRefs from 'use-dynamic-refs';
    3. const Example = () => {
    4. const foo = ['random_id_1', 'random_id_2'];
    5. const [getRef, setRef] = useDynamicRefs();
    6. useEffect(() => {
    7. // Get ref for specific ID
    8. const id1 = getRef('random_id_1');
    9. console.log(id1)
    10. }, [])
    11. return (
    12. <>
    13. {/* Simple set ref. */}
    14. <span ref={setRef('random_id_3')}></span>
    15. {/* Set refs dynamically in Array.map() */}
    16. { foo.map((eachId, idx) => (
    17. <div ref={setRef(eachId)}> Hello {each} </div>))}
    18. </>
    19. )
    20. }
    21. export default Example;